0

我正在使用 stripos() 来搜索给定的单词。但是,例如,当我搜索“fed”时,它也会返回与“federal”的匹配项,这是我不想要的。我希望它只有当它是一个词时才匹配“fed”。

我想为此使用 preg_match,但是,我使用数组进行搜索,显然我不能在这种类型的模式中使用插入符号。

没有插入符号的代码:

if(preg_match("%$clean_title%",$clean_body))

不起作用的代码:

if(preg_match("%^$clean_title%",$clean_body))

我认为单词边界在这里不起作用,因为我试图匹配一个单词,即使它后面有一个逗号(或一个句点)。

4

1 回答 1

0

我想你正在寻找这样的东西:

preg_match("%\byour-string\b%", $clean_body)

匹配 ifyour-string由空格(之前和之后)和其他非单词字符(如空格、制表符、回车、破折号(-)等)分隔。例如:'...hello your-string something...' 将匹配但 '... hello someotheryour-string something...' 不会

如果您希望逗号是可选的,请尝试以下操作: preg_match("%\byour-string,?\b%", $clean_body)

单词边界将,' 视为非单词字符,因此如果您想要 ,'s 或 .' 在您的单词之后,它应该可以工作。

于 2013-09-16T01:33:49.513 回答