我想从给定的匹配中生成RegEx模式
例如,我想从以下匹配数组中获取<b>\d+<\b>
<b>1</b>
<b>2</b>
<b>3</b>
<b>4</b>
<b>5</b>
...
任何想法?
答案 0 :(得分:4)
从answer到类似问题,以下链接可以为您提供帮助:
txt2re :在线正则表达式生成器。
如果您希望更深入地了解该主题而不是快速解决方案,则应阅读以下问题的答案: Is it possible for a computer to “learn” a regular expression by user-provided examples?
如果您想自己编写快速解决方案, this answer 值得一看。
如有意义的 joke 所示,请不要忘记 computers cannot read your mind ,并且可以为同一输入生成多个不同的正则表达式
答案 1 :(得分:2)
基于遗传编程(GP)的问题解决方案:Regex Generator++。 它需要一些示例作为输入,运行机器学习算法并生成与示例匹配的正则表达式作为输出。
在内部,系统试图通过进化算法解决问题,这是一种受生物进化启发的计算范式。它随机生成许多可能的候选解决方案(在这种情况下:多个正则表达式),并针对每个解决方案评估适应度量,即候选解决方案有多好的性能指标。
有不同类型的进化算法,在这种情况下(GP),解决方案被表示为抽象语法树。
您可以在here
中找到更多详细信息related papers