Aby dopasować całe słowo, użyjesz wzorca (\w+)
Zakładając, że używasz PCRE lub czegoś podobnego:
Powyższy zrzut ekranu pochodzi z tego przykładu na żywo: http://regex101.com/r/cU5lC2
Dopasowanie całego słowa w linii poleceń za pomocą (\w+)
Będę za pomocą phpsh interaktywną powłokę na Ubuntu 12.10 do wykazania silnik PCRE regex za pomocą metody znanej jako preg_match
Uruchom phpsh, umieść treść w zmiennej, dopasuj słowo.
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
Metoda preg_match używany silnik PCRE w języku PHP do analizy zmiennych: $content1
, $content2
i $content3
ze (\w)+
wzorca.
$ content1 i $ content2 zawierają co najmniej jedno słowo, $ content3 nie.
Dopasuj kilka dosłownych słów w wierszu poleceń za pomocą (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
zmienne gun1 i gun2 zawierają strzałkę lub pierdnięcie. gun4 tego nie robi. Jednak problemem może być szukanie fart
dopasowań słów farty
. Aby to naprawić, wymuszaj granice słów w wyrażeniu regularnym.
Dopasuj dosłowne słowa w wierszu poleceń z granicami słów.
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
Więc to jest taka sama, jak w poprzednim przykładzie, z wyjątkiem, że słowo fart
z \b
granicy słowo nie istnieje w treści: farty
.