我正在寻找strpos
函数的一些通配符,类似于preg_replace
或preg_match
中使用的通配符,但我找不到任何通配符,这是一个想法:
<?php
if (strpos("The black\t\t\thorse", "black horse") === false)
echo "Text NOT found.";
else
echo "Text found.";
?>
结果将是:Text NOT found.
现在我想使用一个通配符来省略空格或水平标签,如下所示:
<?php
if (strpos("The black\t\t\thorse", "black/*HERE THE WILDCARD*/horse") === false)
echo "Text NOT found.";
else
echo "Text found.";
?>
这里的想法是结果是:Text found.
有人知道吗?
答案 0 :(得分:2)
strpos()与模式不匹配,如果你想匹配你必须使用preg_match()的模式,这应该适合你的情况。
<?php
if (preg_match('/black[\s]+horse/', "The black\t\t\thorse"))
echo "Text found.";
else
echo "Text not found.";
?>
答案 1 :(得分:0)
如果您需要第一次出现匹配,那么您可以使用PREG_OFFSET_CAPTURE标志:
preg_match('/black\shorse/i', "The black\t\t\thorse", $matches, PREG_OFFSET_CAPTURE);
var_dump($matches);
将导致
array(1) { [0]=> array(2) { [0]=> string(13) "black horse" [1]=> int(4) } }
其中$ match [0] [1]是你的位置