PHP preg_匹配以查找整个单词

PHP preg_匹配以查找整个单词,php,preg-match,Php,Preg Match,我对正则表达式很陌生。你能帮我创建一个模式,匹配整个单词,包含特定的部分吗?例如,如果我有一个文本字符串“执行正则表达式匹配”,如果我搜索express,它应该给我expression,如果我搜索form,它应该给我Perform,依此类推。明白了吗 preg_match('/\b(express\w+)\b/', $string, $matches); // matches expression preg_match('/\b(\w*form\w*)\b/', $string, $matche

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

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

这与“执行”匹配:

\b(\w*form\w*)\b
这与“表达式”匹配:

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

那太好了。正是我想要的+1\b单词边界,很好。。。为什么我到现在还没看到?注意,因为在PHP正则表达式中“+”被视为单词边界@想详细说明一下吗?正则表达式中的
+
是“一个或多个字符”。在外部,任何不是
[a-z]
的东西都被认为是词的边界。但我为什么要当心呢?我不了解上下文。以下是更多详细信息:我遇到的问题与以下代码有关:preg_match_all(“/#(\\w+/”,“#a2+u2lis”,$hashtags);-我需要解决这样一个事实,即\w将“+”视为单词边界:结果是两个单词,而我只希望结果是“a2+u2lis”(上下文:它是PHP5.3)