我有一组字符串。我想提取一个匹配所有这些字符串的正则表达式。此外,它最好只匹配这些而不是其他许多。
是否有现有的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。但是如果集合中有大量字符串,这样的正则表达式将变得非常大。
答案 0 :(得分:1)
有一点perl library旨在实现这一目标。我知道你正在使用python,但如果它是一个非常大的字符串列表,你可以偶尔分叉一个perl子进程。 (或者如果你有足够的动力,则复制算法)。