2

我想从给定的匹配中生成正则表达式模式
,例如我想<b>\d+<\b>从以下匹配数组中获取

<b>1</b>
<b>2</b>
<b>3</b>
<b>4</b>
<b>5</b>
...

有任何想法吗?

4

2 回答 2

4

工具

从对类似问题的回答中,以下链接可能会对您有所帮助:

txt2re:在线正则表达式生成器。

理解

如果您寻求对主题的更深入理解而不是快速解决方案,您应该阅读以下问题的答案:计算机是否可以通过用户提供的示例“学习”正则表达式?

编码

如果您想自己编写一个快速解决方案,这个答案值得一看。

笔记

正如有意义的笑话所示,不要忘记计算机无法读懂您的想法,并且可以为相同的输入生成几个不同的正则表达式。

于 2012-08-22T07:35:28.440 回答
2

针对您的问题的基于遗传编程 (GP) 的解决方案:Regex Generator++。它将一些示例作为输入,运行机器学习算法并生成与示例匹配的正则表达式作为输出。

在内部,系统试图通过进化算法来解决问题,这是一种受生物进化启发的计算范式。它随机生成许多可能的候选解决方案(在这种情况下:多个正则表达式),并为每个解决方案评估一个适应度度量,以及候选解决方案的性能指标。

有不同类型的进化算法,在这种情况下(GP),解决方案表示为抽象语法树。

您可以在此处相关论文中找到更多详细信息

于 2014-12-21T18:18:28.840 回答