我有一组字符串。我想提取一个匹配所有这些字符串的正则表达式。此外,它应该最好只匹配这些而不是很多其他的。
是否有一个现有的 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。但是如果集合中有大量字符串,这样的正则表达式将变得非常大。
请您参考如下方法:
有一点perl library那是为了做到这一点而设计的。我知道您使用的是 python,但如果它是一个非常大的字符串列表,您可以时不时地 fork 出一个 perl 子进程。 (如果您有足够的动力,也可以复制算法)。
