我想搜索这个字符串: “这是,mybigstring”
搜索词可能是: “是,大,mybigstring”
目前我正在使用stristr,它将找到所有这些单词的匹配项。但是我不希望“大”匹配..意思是我不允许子串。我怎么能这样做?
更新: 我在看完你的答案后试了这个:
$testregxp = "\b(copenhagen|kobenhavn)\b";
$test = "Copenhagen, Denmark";
print preg_match($testregxp, strtolower($test));
但我似乎无法让它发挥作用..
答案 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
请注意哥本哈根的逗号,但在这种情况下逗号是可选的。所以无论有没有这个词都会匹配。