php preg_match regex split enty输入空格关键字到多个搜索

时间:2014-12-13 16:07:51

标签: php regex preg-match

实际上我正在以这种方式进行搜索:

function myFun($data, $b){
    foreach ($b as $key){
        if(preg_match("/$data/i",$key->description)){
            echo 'found :'.$key->description;
        }
    }
}

if(isset($_GET["s"]) && !empty($_GET["s"]) ){
    myFun($_GET["s"], $b);
}

因此,如果我搜索"呃",我可以匹配"点亮"," p imeter"," qu er y"等

但如果我想搜索"并且#34;,我想进行多重搜索以匹配例如:
&#34; light er &#34;,&#34; qu er y&#34;,&#34; int er national& #34;,&#34; ba nd s&#34;,&#34; bi nd &#34;,&#34; se nd < / b> ING&#34;

我该怎么做?

3 个答案:

答案 0 :(得分:0)

你尝试过吗? /$data$/i

$关于主题的结尾

答案 1 :(得分:0)

您有两个选择:

  • 不要搜索&#34; er nd&#34;。将字符串拆分为&#34; er&#34;和&#34; nd&#34;,然后搜索它们。
  • 使用正则表达式&#34;(er | nd)&#34; (检查regexp的PHP语法)

答案 2 :(得分:0)

用管道替换er nd中的空格以获取:er|nd,:

function myFun($data, $b) {

    // add this line
    $data = str_replace(' ', '|', $data);

    foreach ($b as $key){
        if(preg_match("/$data/i",$key->description)){
            echo 'found :'.$key->description;
        }
    }
}