Finden Ausdruck in string mit preg_match
Ich bin auf der Suche durch den text Zeile für Zeile und möchte sehen, ob die Linie enthält der Satz "details" und ist nicht case sensitive, so finden:
Sehen, Details, details, Details etc
Habe ich diesen so weit.
if(preg_match("/^(\see details)/", strtolower($line)))
{
echo 'SEE DETAILS FOUND';
}
Ein einfaches Beispiel wäre hilfreich, danke.
InformationsquelleAutor RobRoy | 2011-04-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, um zu überprüfen, ob ein Teil-string in einem string, keine Notwendigkeit für reguläre Ausdrücke :
stripos()
tun gut :stripos()
wird wieder die position des ersten Auftretens der Teilzeichenfolge in der Zeichenfolge ; oderfalse
wenn der sub-string nicht gefunden.Was bedeutet, dass, wenn es gibt etwas anderes als
false
, der Teil-string gefunden wird.Hoppla ^^ ja, natürlich 🙂 sorry, vergessen haben, geben Sie die Hälfte davon... (ich habe bearbeitet meine Antwort, dass zu beheben ; vielen Dank für den Kommentar !)
keine Notwendigkeit zu verwenden
strtolower
wenn schon mit der groß-und Kleinschreibung matching (stripos
)danke gut zu wissen,
InformationsquelleAutor Pascal MARTIN
Deine regex ist tatsächlich gebrochen.
Dieser zerfällt in:
ee details
\s
ist eine escape-Sequenz passenden Leerzeichen. Man könnte auch Hinzugefügt haben diei
- Modifikator, um die regex case-insensitive. Sie auch nicht zu sein scheinen etwas zu tun mit der erfassten Gruppe, so können Sie Graben, dass.Daher:
ist, was Sie wollen.
Du hast erwähnt, dass du gehst durch die Eingabe Zeile für Zeile. Wenn Sie nur brauchen zu wissen, dass die gesamte Eingabe enthält die bestimmte Zeichenfolge, und du hast die Eingabe als string, können Sie die
m
modifier zu machen^
match "Beginn einer Zeile" statt /zusätzlich zu "Anfang des Strings":Wenn dies der Fall ist, dann würden Sie am Ende mit:
Aber wie andere erwähnt haben, ein regex ist nicht hier erforderlich. Sie können (und sollten) die Aufgabe mit den eher einfachen
stripos
.InformationsquelleAutor Charles
Wie Pascal sagte, Sie können
stripos()
Funktion, obwohl der richtige code wäre:InformationsquelleAutor LooPer
accoding auf die php-Dokumentation (http://www.php.net/manual/en/function.preg-match.php):
denen es ganz einfach aussieht und nett :-).
InformationsquelleAutor Alejandro Moreno