我正在寻找一些类似于preg_replace
或preg_match
中使用的strpos
函数的通配符,但我找不到任何通配符,这里有一个想法:
<?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.
有谁知道一些事情吗?
strpos() 不匹配模式,如果你想匹配模式,你必须使用 preg_match() 这应该适用于你的情况。
<?php
if (preg_match('/black['s]+horse/', "The black't't'thorse"))
echo "Text found.";
else
echo "Text not found.";
?>
如果您需要匹配的第一次出现,则可以使用 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) } }
其中$matches[0][1]是你的位置