php的strpos函数中的通配符

时间:2013-10-20 04:54:34

标签: php wildcard strpos

我正在寻找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.

有人知道吗?

2 个答案:

答案 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]是你的位置