从文本中查找多个关键短语

时间:2016-04-29 07:27:04

标签: php regex string

我有关键短语abc,xyz,pqr,mno等。文字 - "此文本包含abc和mno",想要查找文本是否包含关键短语字符串。  我正在寻找有效的解决方案。请在下面找到我当前的代码。

<?php
    $content = " this text contains keyphrases abc and mno ";
    $tags    = array(array('key_phrase'=>'abc'),array('key_phrase'=>'pqr'),array('key_phrase'=>'mno'));
    foreach( $tags as $tag ){
        $matches = array();
        preg_match( "/".$tag['key_phrase']."/", $content, $matches );
        if( !empty( $matches ) ){
            echo "key_phrase present ".$tag['key_phrase'];
        }
    } 
?>

1 个答案:

答案 0 :(得分:1)

如果您的目标是为每个匹配的key_phrase执行某些操作,那么这已经非常有效。

如果找到了某些内容,preg_match将返回true,因此您不需要$ matches。

foreach ($tags as $tag) {
    if (preg_match("/".$tag['key_phrase']."/", $content)) {
        echo "key_phrase present ".$tag['key_phrase'];
    }
}

如果你只是想知道任何 key_phrase是否匹配,你应该将所有这些组合成一个&#34; big&#34;正则表达式形式为&#34; abc | xyc&#34;。因为这比单独的测试更有效。