Um ein ganzes Wort zu finden, würden Sie das Muster verwenden (\w+)
Angenommen, Sie verwenden PCRE oder ähnliches:
Der obige Screenshot stammt aus diesem Live-Beispiel: http://regex101.com/r/cU5lC2
Abgleichen eines ganzen Wortes in der Befehlszeile mit (\w+)
Ich werde die interaktive phpsh-Shell unter Ubuntu 12.10 verwenden , um die PCRE-Regex-Engine mit der als preg_match bekannten Methode zu demonstrieren
Starten Sie phpsh, fügen Sie Inhalte in eine Variable ein und stimmen Sie mit dem Wort überein.
el@apollo:~/foo$ phpsh
php> $content1 = 'badger'
php> $content2 = '1234'
php> $content3 = '$%^&'
php> echo preg_match('(\w+)', $content1);
1
php> echo preg_match('(\w+)', $content2);
1
php> echo preg_match('(\w+)', $content3);
0
Die preg_match Methode verwendet , um den PCRE Motor innerhalb der Sprache PHP Variablen zu analysieren $content1
, $content2
und $content3
mit dem (\w)+
Muster.
$ content1 und $ content2 enthalten mindestens ein Wort, $ content3 nicht.
Ordnen Sie eine Reihe von wörtlichen Wörtern in der Befehlszeile zu (dart|fart)
el@apollo:~/foo$ phpsh
php> $gun1 = 'dart gun';
php> $gun2 = 'fart gun';
php> $gun3 = 'farty gun';
php> $gun4 = 'unicorn gun';
php> echo preg_match('(dart|fart)', $gun1);
1
php> echo preg_match('(dart|fart)', $gun2);
1
php> echo preg_match('(dart|fart)', $gun3);
1
php> echo preg_match('(dart|fart)', $gun4);
0
Die Variablen gun1 und gun2 enthalten den String Dart oder Fart. gun4 nicht. Allerdings kann es ein Problem sein , dass für Wort sucht fart
Streichhölzer farty
. Um dies zu beheben, erzwingen Sie Wortgrenzen in Regex.
Ordnen Sie wörtliche Wörter in der Befehlszeile den Wortgrenzen zu.
el@apollo:~/foo$ phpsh
php> $gun1 = 'dart gun';
php> $gun2 = 'fart gun';
php> $gun3 = 'farty gun';
php> $gun4 = 'unicorn gun';
php> echo preg_match('(\bdart\b|\bfart\b)', $gun1);
1
php> echo preg_match('(\bdart\b|\bfart\b)', $gun2);
1
php> echo preg_match('(\bdart\b|\bfart\b)', $gun3);
0
php> echo preg_match('(\bdart\b|\bfart\b)', $gun4);
0
Es ist also dasselbe wie im vorherigen Beispiel, außer dass das Wort fart
mit einer \b
Wortgrenze im Inhalt nicht vorhanden ist : farty
.