正则表达式搜索引擎

时间:2011-01-01 13:58:21

标签: regex search-engine

是否有搜索引擎,允许我按正则表达式搜索?

7 个答案:

答案 0 :(得分:3)

Google Code Search允许您使用正则表达式进行搜索。

据我所知,一般搜索都没有这样的搜索引擎。

答案 1 :(得分:2)

正则表达式存在一些问题,目前禁止在实际场景中使用这些问题。最紧迫的是整个缓存的互联网必须与你的正则表达式相匹配,这需要大量的计算资源;由于正则表达式可能未绑定(/ fo * bar /),索引在正则表达式上下文中几乎没用。

答案 2 :(得分:1)

我没有特定的引擎可供建议。

但是,如果您可以使用正则表达式语法的子集,则搜索引擎可以存储其他令牌以有效地匹配相当复杂的表达式。 Solr / Lucene允许自定义标记化,其中相同的单词可以生成多个标记和各种规则集。

我将以我的名字为例:“马克标志着这一点。”

对词干不区分大小写:(标记,标记,点)

区分大小写但没有词干:(标记,标记,点)

与NLP词库扩展区分大小写:([Mark,Marc],[mark,indication,to-point],[spot,position,location,beacon,coordinate])

现在朝着你的问题发展,不区分大小写,词干,重复数据删除,自动完成前缀匹配:([m,ma,mar,mark],[s,sp,spo,spot])

如果你想要“子串”风格匹配,它将是:([m,ma,mar,mark,a,ar,ark,r,rk,k],[s,sp,spo,spot,p, po,pot,o,ot,t])

单个搜索索引包含所有这些不同形式的标记,并选择用于每种搜索类型的标记。

让我们尝试使用带有文字标记的正则表达式样式的“Missippi”:[m,m?,m +,i,i?,i +,s,ss,s +,ss + ...]等。

实际规则将取决于正则表达式子集,但希望模式变得更加清晰。您将进一步扩展以匹配其他正则表达式片段,然后使用短语搜索的形式来查找匹配。

当然,索引会非常大,但根据项目的要求,它可能是值得的。而且你还需要一个查询解析器和应用程序逻辑。

我意识到如果你正在寻找一个罐装发动机,但这并没有这样做,但就理论而言,这就是我接近它的方式(假设它真的是一个要求!)。如果有人想要的是子串匹配和灵活的通配符匹配,那么你可以在索引中获得更少的令牌。

就固定应用程序而言,您可以查看用于源代码索引的OpenGrok,它不是完整的正则表达式,但很好地理解源代码。

答案 3 :(得分:1)

如果正则表达式占用太多资源,为什么不为cputime使用它而不是让它完全不可用呢?我相信有些人会付钱并使用它(当然还会提供相关费用的解释,以碳足迹和cpu资源来解释)。 Google确实在搜索*gogo*或内注中支持扩展*:"*go"此处为:http://www.hackcollege.com/blog/2011/11/23/infographic-get-more-out-of-google.html

答案 4 :(得分:0)

关于Russ Cox的三元组索引的正则表达式搜索的一篇非常好的文章

http://swtch.com/~rsc/regexp/regexp4.html

答案 5 :(得分:0)

http://www.google.com/codesearch已被关闭......

正则表达式搜索占用了大量资源,因此受到热门搜索引擎的支持。

答案 6 :(得分:0)

Globalogiq有HTML Source Code Search,您可以使用正则表达式进行搜索。但它不是免费的。