【发布时间】:2011-08-12 11:50:08
【问题描述】:
if (preg_match('#\b'.$rawword.'\b#i',$body)) {
此代码查找整个单词,但如果它们是像“ABLE-BODIED”这样的连字符,它将分别查找 ABLE 和 BODIED。如何修改表达式以适应破折号?
【问题讨论】:
标签: php regex preg-match text-parsing hyphen
if (preg_match('#\b'.$rawword.'\b#i',$body)) {
此代码查找整个单词,但如果它们是像“ABLE-BODIED”这样的连字符,它将分别查找 ABLE 和 BODIED。如何修改表达式以适应破折号?
【问题讨论】:
标签: php regex preg-match text-parsing hyphen
您可以使用lookbehind 和lookahead 运算符。此运算符在后面和后面查找,但不匹配。
例如,使用\b(?<!-)xyz(?!-)\b 查找xyz 之前或之后没有- 的整个单词。
【讨论】:
'#\b(?<!-)$rawword(?!-)\b#i' 中,您现在尝试在单引号字符串中使用变量替换,但这是行不通的。像以前一样追加或使用双引号。 PHP string ref