在php中结合动态文本和正则表达式

在php中结合动态文本和正则表达式,php,regex,Php,Regex,我正在尝试使用curl、php和正则表达式查找流行关键字。我有一个非特定名词数组,我正在匹配我的关键字搜索。因此,我正在寻找像,和,等词,并把他们从关键字搜索 所以我有一系列这样的词: $wordArr = [the, and, at,....]; 然后运行类似于: && preg_match('(\bmyword\w*\b)', $key) == false 如何组合这两个词,使其在数组中循环查找数组中是否有与正则表达式匹配的词 我想我可以做一个for循环,但也许我可以在数

我正在尝试使用curl、php和正则表达式查找流行关键字。我有一个非特定名词数组,我正在匹配我的关键字搜索。因此,我正在寻找像,和,等词,并把他们从关键字搜索

所以我有一系列这样的词:

$wordArr = [the, and, at,....];
然后运行类似于:

&& preg_match('(\bmyword\w*\b)', $key) == false
如何组合这两个词,使其在数组中循环查找数组中是否有与正则表达式匹配的词

我想我可以做一个for循环,但也许我可以在数组中使用$wordArr,$key。。或者类似的

$str = "cars and all that stuff";

$a = array("and", "that");

$b = str_replace( $a, '', $str );

echo $b ;
汽车什么的


尽可能快地使用PHP本机函数进行此操作。

如果黑名单不是很长,比如少于100个条目,您可以从中构建一个大的regexp:

$stops = '~\\b(' . implode('|', $stopWords) . ')\\b~';

if(preg_match($stops, $text))....

哈,关于“土匪和雄鹿”的故事很有趣。我想读那篇文章。我想stereofrog的观点是,你可以使用空格上的explode生成一个单词数组,然后从数组中删除停止词。如果您的初始搜索结果为零或很少,也很有用,然后您可以选择执行传统的%$word%搜索。