Php搜索字符串不允许子串

时间:2011-08-23 08:43:58

标签: php

我想搜索这个字符串: “这是,mybigstring”

搜索词可能是: “是,大,mybigstring”

目前我正在使用stristr,它将找到所有这些单词的匹配项。但是我不希望“大”匹配..意思是我不允许子串。我怎么能这样做?

更新: 我在看完你的答案后试了这个:

$testregxp = "\b(copenhagen|kobenhavn)\b";
$test = "Copenhagen, Denmark";
print preg_match($testregxp, strtolower($test));

但我似乎无法让它发挥作用..

1 个答案:

答案 0 :(得分:3)

您可以使用正则表达式。取决于您是否要查找该单词的所有实例。

http://php.net/manual/en/function.preg-match.php

http://www.php.net/manual/en/function.preg-match-all.php查找所有实例而不只是1个匹配。

另外,如果你想同时搜索所有这些,你也可以这样做。

这样的东西

\bis\b应该有效。这应该搜索实际的单词“是”,所以tis不匹配,但你的情况“是”,甚至会用那个逗号。

在您可以的同时搜索其中任何一个

\b(is|This|big)\b这匹配的是和This,但是找不到。


更新

我不完全确定你想要100%,但你可以添加逗号。 IE:"/\b(copenhagen|kobenhavn)\b,/i"现在,如果您想在搜索中包含逗号"/\b(copenhagen|kobenhavn)\b,?/i",那么逗号是可选的。如果你做了

\b(copenhagen|kobenhavn|denmark)\b,?

“丹麦哥本哈根”

它将匹配

Copenhagen,

Denmark

请注意哥本哈根的逗号,但在这种情况下逗号是可选的。所以无论有没有这个词都会匹配。