php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.03.2005, 16:34  
Gast
 
Beiträge: n/a
Standard preg_match_all() Text zwischen Anführungszeichen raus filter

Hallo

hab mir die regexp 100 mal rein gezogen
http://www.phpcenter.de/de-html-manu...rn.syntax.html

ist allerdings extrem unverständlich ich schnall das nicht.

Ich habe einen String mit einer Suchanfrage, in dem mehrere Begriffe in Anführungszeichen gesetzt sind.

mit

$input = preg_quote($input);
preg_match_all('/\s["]"*/is', $input, $matchesm, PREG_SET_ORDER);
var_dump($matches);

funktioniert das nicht. Hab auch schon viele andere dinge probiert... Was mache ich falsch?
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.03.2005, 16:36  
Gast
 
Beiträge: n/a
Standard

korrektur:


$input = preg_quote($input);
preg_match_all('/\s["]"*/is', $input, $matches, PREG_SET_ORDER);
var_dump($matches);

funzt trotzdem noch nicht
 
Alt 25.03.2005, 16:41  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

erklär doch mal genauer was er finden soll, am besten mit nem beispiel, ausserdem das nächste mal bitte die [php]-tags für php-code, ausserdem kannst du dir ja mal regex coach anschauen, da kann man ganz toll ausprobieren ob seine regex funktionieren:

http://weitz.de/regex-coach/
robo47 ist offline  
Alt 25.03.2005, 16:54  
Gast
 
Beiträge: n/a
Standard

z.B.

PHP-Code:
<?php
$input 
"das hier ist \"ein Text\" der mit \"preg_match_all gefunden werden\" soll";

$input preg_quote($input); 
preg_match_all('/\s["]"*/is'$input$matchesPREG_SET_ORDER); 
var_dump($matches); 
?>
Ergebnis soll sein:

$matches[0] = "ein Text"

$matches[1] = "preg_match_all gefunden werden"
 
Alt 25.03.2005, 17:29  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

naja so hätte ich das versucht:

/"[^"]*"/is

mfg
robo47
robo47 ist offline  
Alt 25.03.2005, 19:51  
Gast
 
Beiträge: n/a
Standard

Zitat:
naja so hätte ich das versucht:

/"[^"]*"/is
danke robo47. Funktioniert!

kannst du mir den Code noch erklären, damit ich nachvollziehen kann was er bedeutet?
 
Alt 25.03.2005, 19:54  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Code:
Delimiter + Regex + Delimiter [+ Modifiers]
naja die / sind der Delimiter
dann ein ", weil damit solls ja anfangen

[^"]* steht für ne unendliche kette von zeichen die kein " sind und dann wieder ein " um das ende zu definieren, was noch zu verbessern wäre, wäre vieleicht ne Klammer um das
[^"]* zu machen, dann sind die " nicht im Match mit drin.

mfg
robo47
robo47 ist offline  
Alt 25.03.2005, 21:17  
Gast
 
Beiträge: n/a
Standard

danke, glaub soweit hab ich das verstanden.

Ich hab jetzt noch was versucht:

PHP-Code:
<?php
/s-"([^"]*)"/is
?>
das funktioniert soweit ganz gut.
Es filtert alles raus was in Anführungszeichen gesetzt ist un ein Minus davor hat.

Aber jetzt wollte ich auch gerne alles filtern was in Anführungszeichen ist und ein Plus davor hat. Das hab ich genauso probiert:

PHP-Code:
<?php
/s+"([^"]*)"/is
?>
hat aber leider nicht funktioniert
 
Alt 25.03.2005, 21:33  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

+ musst du escapen, weil + nicht nur ein zeichen in nem regulären ausdruck ist.

als \+

btw was sucht das s bei dir überall hinter dem / ? soll das da hin? oder warum ist das da?
robo47 ist offline  
Alt 25.03.2005, 21:47  
Gast
 
Beiträge: n/a
Standard

weis nicht das mit dem /s hab ich irgendwo aufgeschnappt. was bedeutet das denn überhaupt?

mit \+ hab ich es auch gerade probiert, funktioniert aber trotzdem nicht. Der Suchstring in dem +"irgendwas" steht wird auch escaped, da steht dann \+"irgendwas"

es scheint irgendwie generell nicht zu funtzen wenn z.B. vor dem minus noch was anderes direkt dran ist. Der escape vor dem + im Suchstring scheint der Funktion vorzutäuschen das da "noch was davor" steht.
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JavaScript/PHP: qooxdoo 0.7.1 - Teil 1 : Eine Einführung Zergling-new Tutorials 6 25.01.2008 10:41
CSS - Bild im div container überlappt andere container Buschdieb HTML, Usability und Barrierefreiheit 13 19.07.2007 23:17
CSS - Design (clear - Problem) HTML, Usability und Barrierefreiheit 7 21.12.2005 14:55
Text aus der DB verteilen PHP Tipps 2007 17 16.11.2005 12:04
geshi probs / text zwischen zwei tags auswählen PHP Tipps 2005-2 0 05.08.2005 20:47
geshi probs / text zwischen zwei tags auswählen PHP Tipps 2005-2 0 05.08.2005 20:37
geshi probs oder wie wähle ich text zwischen zwei tags aus PHP Tipps 2005-2 0 05.08.2005 20:35
Text zwischen 2 Zeichen in einen Text zu string machen Blank PHP Tipps 2005-2 8 30.07.2005 00:38
[Erledigt] Link PHP Tipps 2005-2 10 20.07.2005 21:28
Text zwischen zwei zechen löschen PHP Tipps 2005-2 2 08.07.2005 19:21
[Erledigt] durch Klick auf Text anderen Text einblenden HTML, Usability und Barrierefreiheit 3 03.07.2005 14:41
Text zwischen Code-Tags nicht verändern imported_Lumio PHP Tipps 2005 8 21.05.2005 23:22
[Erledigt] DIV´s wollen nicht wie ich das will :-) HTML, Usability und Barrierefreiheit 22 28.03.2005 18:36
text zwischen zwei strings verändern auchegal PHP Tipps 2004-2 1 30.12.2004 12:37
txt-Datei erstellen d-81 PHP Tipps 2004 12 11.08.2004 20:31

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-tipps-2005/20181-preg_match_all-text-zwischen-anfuehrungszeichen-raus-filter.html, preg_match mit anführungszeichen, regex zwischen anführungszeichen, regex text in anführungszeichen, reg exp text in anführungsstrichen, preg_match anführungszeichen, preg_match_all zwischen anführungszeichen, regexp anführungszeichen, preg_match_all text string, preg_match anführungszeichen filtern, php preg_match anführungszeichen, regex zeichenkette zwischen gänsefüßchen, regular expressions zwischen anführungszeichen, php preg_match filtern, preg_match_all anführungszeichen, preg_match inhalt zwischen anführungszeichen, php alles zwischen hochkomma finden, php preg_match zwischen 2 anführungszeichen, php preg_match_all hochkomma, preg_match innerhalb anführungszeichen

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:27 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.