我有一个方法可以查找单词'not',然后查找单词后面的单词但是如果我有一个句子如:
这很好。不好
出于某种原因,'not'不会因为它前面的完全停止而被拾取,任何人都知道如何解决这个问题,代码在下面
preg_match_all("/(?<=\b not\b)\b good\b/i", $find, $matches);
答案 0 :(得分:2)
\b
匹配单词边界,这是两个字符之间的位置,其中一个是单词字符而另一个不是。单词字符为[a-zA-Z0-9]
。您在not
之前的空格之前匹配单词边界,并且那里没有单词边界,因为该字符串具有作为前一个字符的句点。
也就是说,在句号和空格之间没有单词边界,因为 都不是单词字符。
更多信息:http://www.regular-expressions.info/wordboundaries.html