Чтобы соответствовать любому целому слову, вы должны использовать шаблон (\w+)
Предполагается, что вы используете PCRE или что-то подобное:
Выше приведен скриншот из этого примера: http://regex101.com/r/cU5lC2
Совпадение любого целого слова в командной строке с (\w+)
Я буду использовать интерактивную оболочку phpsh в Ubuntu 12.10 , чтобы продемонстрировать механизм регулярных выражений PCRE с помощью метода, известного как preg_match
Запустите phpsh, поместите некоторый контент в переменную, сопоставьте по слову.
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
Метод preg_match использовал механизм PCRE в языке PHP для анализа переменных: $content1
, $content2
и $content3
с шаблоном (\w)+
.
$ content1 и $ content2 содержат хотя бы одно слово, а $ content3 - нет.
Совпадение количества буквенных слов в командной строке с (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
переменные gun1 и gun2 содержат строку dart или fart. gun4 нет. Однако может возникнуть проблема, что поиск слова fart
соответствует farty
. Чтобы исправить это, установите границы слов в регулярном выражении.
Сопоставлять буквенные слова в командной строке с границами слов.
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
То же самое, что и в предыдущем примере, за исключением того, что слово fart
с границей слова \b
не существует в содержимом: farty
.