Regex 有没有办法缩小正则表达式查询?

Regex 有没有办法缩小正则表达式查询?,regex,sed,Regex,Sed,假设我有一个正则表达式查询,如: hund|seehund|präriehund 从视觉上我们可以看出,这可以缩小为: (see|prärie)?hund 现在,我有一个巨大的正则表达式查询,很难找到相似之处。有没有一种方法可以插入一个正则表达式查询并让工具将其缩小到尽可能小的程度(或者反过来,使用一个小的正则表达式查询并将其展开)?我知道它看起来不吸引人,但我的目标是最小的尺寸,想想代码高尔夫 具体来说,我将在BSD sed中使用它 抱歉,如果这是离题的,我不知道还能放在哪里。有在线示例或

假设我有一个正则表达式查询,如:

hund|seehund|präriehund
从视觉上我们可以看出,这可以缩小为:

(see|prärie)?hund
现在,我有一个巨大的正则表达式查询,很难找到相似之处。有没有一种方法可以插入一个正则表达式查询并让工具将其缩小到尽可能小的程度(或者反过来,使用一个小的正则表达式查询并将其展开)?我知道它看起来不吸引人,但我的目标是最小的尺寸,想想代码高尔夫

具体来说,我将在BSD sed中使用它


抱歉,如果这是离题的,我不知道还能放在哪里。

有在线示例或库示例,但通常良好的设计和手动审查是如何完成的。LOL我假设这在大多数情况下都很有效,但我得到了
hund{2}hund | präriehund
,比源代码大两位。谢谢,不过,我没有看到的网站时,寻找一个!在线版本背后的算法可能相当原始。perl库可能是一个更好的选择,尽管它当然也会有局限性。遗憾的是,我对perl一无所知,我会对此进行测试,但我对perl库缺乏了解,perl库也具有优化功能,但对于您的示例,它给出的结果比您建议的因式分解更长,效率更低(除了使用非捕获组外,它还提取了“see”和“prärie”的结尾“e”):
(?:(?:präri|se)e)?hund
。不过,如果您想使用在线工具完成大部分工作,这似乎比dcode.fr更为坚实。