我试图在字符串中找到一个确切的单词。
示例:
$word = "Many Blocks";
if (strpos($word, "Block")){
echo "You found 1 Block";
}
if (strpos($word, "Blocks")){
echo "You found many Blocks";
}
这里的问题是,如果是真的..我只需要找到相同的单词..
答案 0 :(得分:6)
正如Jay Blanchard所说,你需要以下列方式使用正则表达式: -
$word = "Many Blocks";
if ( preg_match("~\bBlocks\b~",$word) )
echo "matched";
else
echo "no match";
答案 1 :(得分:2)
您的代码将使用第二次搜索的偏移量和其他一些更改。
while(document.getElementById("sound1").currentTime<16){
}
//insert code here
通过使用strpos()偏移量,您可以继续循环直到找不到该词。
$result = 'You found no blocks';
$position = strpos($word, "Block");
if ($position !== false){
$result = "You found 1 Block";
if (strpos($word, "Blocks",$position + 1)){
$result = "You found many Blocks";
}
}
echo $result;
或
这个代码很简单,但速度较慢:
$found = 0;
$offset = 0;
while(true){
$position = strpos($word,'Block',$offset );
if ($position === false){break;}
$found++;
$offset = $position + 1; // set offset just beyond the current found word
}
echo "Found: $found";
答案 2 :(得分:1)
你可以用这样的正则表达式来实现:
if(preg_match("/Block(\s|$|\.|\,)/", $string))
这样可以找到&#34; Block&#34;后跟空格或点或逗号或字符串结尾。