PHP识别单词之前的句号

时间:2012-04-04 21:12:19

标签: php regex text

我有一个方法可以查找单词'not',然后查找单词后面的单词但是如果我有一个句子如:

  

这很好。不好

出于某种原因,'not'不会因为它前面的完全停止而被拾取,任何人都知道如何解决这个问题,代码在下面

   preg_match_all("/(?<=\b not\b)\b good\b/i", $find, $matches);

1 个答案:

答案 0 :(得分:2)

\b匹配单词边界,这是两个字符之间的位置,其中一个是单词字符而另一个不是。单词字符为[a-zA-Z0-9]。您在not之前的空格之前匹配单词边界,并且那里没有单词边界,因为该字符串具有作为前一个字符的句点。

也就是说,在句号和空格之间没有单词边界,因为 都不是单词字符。

更多信息:http://www.regular-expressions.info/wordboundaries.html