PHP preg_match, чтобы найти целые слова - PullRequest
23 голосов
/ 18 января 2011

Я довольно новичок в регулярных выражениях.Не могли бы вы помочь мне создать шаблон, который соответствует целым словам, содержащим определенную часть?Например, если у меня есть текстовая строка «Выполнить сопоставление по регулярному выражению», и если я ищу express , это даст мне выражение , если я ищу форму , это должно дать мне Выполнить и так далее.Есть идея?

Ответы [ 2 ]

41 голосов
/ 18 января 2011
preg_match('/\b(express\w+)\b/', $string, $matches); // matches expression
preg_match('/\b(\w*form\w*)\b/', $string, $matches); // matches perform,
                                                     // formation, unformatted

Где:

  • \b является границей слова
  • \w+ - это один или несколько символов «слова» *
  • \w* - ноль или более «словесных» символов

См. Руководство по escape-последовательности для PCRE.


* Примечание: хотя на самом деле это не «символ слова», подчеркивание _ также включено в класс символов \w.

4 голосов
/ 18 января 2011

Это соответствует 'Perform':

\b(\w*form\w*)\b

Это соответствует 'expression':

\b(\w*express\w*)\b
...