从文本中查找多个关键词


Find multiple keyphrases from a text

我有关键字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'];
        }
    } 
?>

如果您的目标是为每个匹配的key_phrase做点什么,那么这已经非常有效了。

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

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

如果您只想知道是否有键语法匹配,您应该将所有这些组合为一个"大"正则表达式,格式为"abc|xyc"。因为这将比单独测试更有效率。