【发布时间】:2019-03-26 20:29:33
【问题描述】:
我对编程世界还很陌生。我正在尝试创建一个仅匹配给定字符串列表的通用正则表达式,仅此而已。
例如,给定以下列表
List = ['starguide,'snoreguide','snoraguide','smarguides']
它应该创建一个像这样的正则表达式 - s(((tar|nor(e|a))(guide))|marguides)
我实现了一个尝试。只能设法得到s(marguides|nor(aguide|eguide)|targuide)
我希望缩短我的正则表达式(常见的后缀捆绑在一起)。有没有更好的方法来缩短我从特里得到的正则表达式?
【问题讨论】:
-
在 python 中轻松 peasy 'l'.join(mylist)
-
查看自动机最小化算法
-
This post 包含您需要的所有详细信息和代码。复制/粘贴。
-
@WiktorStribiżew:我尝试实现你的代码,但它给出了
s(marguides|nor(aguide|eguide)|targuide)。 -
你的目标是更短的正则表达式还是更快