从一组字符串中提取正则表达式

时间:2012-03-22 07:41:08

标签: python regex

我有一组字符串。我想提取一个匹配所有这些字符串的正则表达式。此外,它最好只匹配这些而不是其他许多。

是否有现有的python模块执行此操作?

www.google.com
www.googlemail.com/hello/hey
www.google.com/hello/hey

然后,提取的正则表达式可以是www\.google(mail)?\.com(/hello/hey)? (这也匹配www.googlemail.com,但我想我需要忍受它)

我的动机是机器学习设置。我想提取一个正则表达式,“最好”代表所有这些字符串。

我明白正则表达式喜欢 (www.google.com)|(www.googlemail.com/hello/hey)|(www.google.com/hello/hey)或 根据我的说明,www.google(mail.com/hello/hey)|(.com)|(/hello/hey)是正确的,因为除了给定的URL之外,它们不匹配任何其他URL。但是如果集合中有大量字符串,这样的正则表达式将变得非常大。

1 个答案:

答案 0 :(得分:1)

有一点perl library旨在实现这一目标。我知道你正在使用python,但如果它是一个非常大的字符串列表,你可以偶尔分叉一个perl子进程。 (或者如果你有足够的动力,则复制算法)。