【发布时间】:2011-01-18 08:41:14
【问题描述】:
我对正则表达式很陌生。你能帮我创建一个匹配整个单词的模式,包含特定部分吗?例如,如果我有一个文本字符串“执行正则表达式匹配”,并且如果我搜索 express,那么如果我搜索 ,它应该给我 expression form,它应该给我 Perform 等等。明白了吗?
【问题讨论】:
标签: php preg-match
我对正则表达式很陌生。你能帮我创建一个匹配整个单词的模式,包含特定部分吗?例如,如果我有一个文本字符串“执行正则表达式匹配”,并且如果我搜索 express,那么如果我搜索 ,它应该给我 expression form,它应该给我 Perform 等等。明白了吗?
【问题讨论】:
标签: php preg-match
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,请参阅 escape sequences 上的手册。
* 注意:虽然不是真正的“单词字符”,但下划线_ 也包含在字符类\w 中。
【讨论】:
+ 是“一个或多个字符”。在外面,实际上任何不是[a-z] 的东西都被认为是单词边界。但是我为什么要小心呢?我不明白上下文。
这匹配“执行”:
\b(\w*form\w*)\b
这匹配“表达式”:
\b(\w*express\w*)\b
【讨论】: