PHP preg_match查找整个单词

2022-08-30 17:04:23

我对正则表达式很陌生。你能帮我创建一个模式,它匹配整个单词,包含特定的部分吗?例如,如果我有一个文本字符串“执行正则表达式匹配”,如果我搜索express,它应该给我表达式,如果我搜索表单,它应该给我执行等等。有了这个想法吗?


答案 1
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*为零个或多个“单词”字符

请参阅 PCRE 转义序列手册。


* 注意:虽然不是真正的“单词字符”,但下划线 _ 也包含在字符类 \w 中。


答案 2

这与“执行”匹配:

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

这与“表达式”匹配:

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

推荐