4

我正在寻找一些通配符来strpos类似于使用的通配符preg_replacepreg_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.

有人知道吗?

4

2 回答 2

2

strpos() 不匹配模式,如果你想匹配模式,你必须使用 preg_match() 这应该适用于你的情况。

<?php
    if (preg_match('/black[\s]+horse/', "The black\t\t\thorse"))
      echo "Text found.";
    else
      echo "Text not found.";
?>
于 2013-10-20T05:07:59.903 回答
0

If you need the first occurrence of the match then you can use the PREG_OFFSET_CAPTURE flag:

preg_match('/black\shorse/i', "The black\t\t\thorse", $matches, PREG_OFFSET_CAPTURE);
var_dump($matches);

will result in

array(1) { [0]=> array(2) { [0]=> string(13) "black horse" [1]=> int(4) } }

where $matches[0][1] is your position

于 2014-10-17T07:41:45.397 回答