首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配文本字符串中的短语(在数组中)

匹配文本字符串中的短语(在数组中)
EN

Stack Overflow用户
提问于 2013-06-25 05:58:12
回答 1查看 117关注 0票数 0

我正在使用Twitter API流每分钟收集数千条tweet。它们需要与关键字列表匹配(可以包含空格)。

这是我当前的方法:

代码语言:javascript
复制
$text = preg_replace( '/[^a-z0-9]+/i', ' ', strtolower( $data['text'] ) );
$breakout = explode( " ", $text );

$result = array_intersect( $this->_currentTracks, $breakout );

我将推文切成文字,然后将它们与我当前的关键字进行匹配。这对于没有空格的所有关键字都很有效。

例如,如果我想查找"Den Haag",它不会出现,因为字符串被分解成单词(基于空格)。

关于如何快速完成这项工作,您有什么建议吗?

致以亲切的问候,蒂姆

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-25 06:12:13

如果您要搜索的关键字很少,您可能会对基本的regexp方法感到满意:

代码语言:javascript
复制
if (preg_match('/\b(keyword1|keyword2|Den Haag)\b/i', $data['text'], $matches) !== FALSE) {
}

然而,如果关键字的大集合可能有点不理想,特别是如果关键字往往以相同的前缀开头(在本例中为‘keyword’)。另一方面,它可能比一些更复杂的搜索算法的PHP实现更快。

您可以使用implode('|',$array)从关键字数组中准备正则表达式字符串,但是,如果您从外部源获取关键字(它没有在脚本中硬编码),则必须确保它正确转义(关键字可以包含像|这样的字符)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17285837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档