从样本算法创建正则表达式

Jua*_*uan 5 regex algorithm pattern-matching

据我所知,没有人实现了一种算法,该算法采用一组字符串和子字符串,并返回一个或多个与字符串内给定子字符串匹配的正则表达式。因此,举例来说,如果我给我的算法提供这两个样本:

string1 = "fwef 1234 asdfd"
substring1 = "1234"

string2 = "asdf456fsdf"
substring2 = "456"
Run Code Online (Sandbox Code Playgroud)

该算法会给我正则表达式“[0-9]*”。我知道它可以给出多个正则表达式,甚至没有可能的正则表达式返回,你可能会找到 1000 个理由来解释为什么这种算法几乎不可能完美实现。但最接近的是什么?

我也不太关心正则表达式本身。基本上我想要的是一种算法,它采用上面的样本,然后在其中找到一个模式,可以用来轻松找到我想要在字符串中找到的文本的“种类”,而无需手动编写任何正则表达式或代码。

小智 2

MS Excel 2013 的一项新功能 FlashFill 可以完全完成您想要的任务,但它不会为您提供正则表达式。这是一个 NP 完全问题,也是一个出于实际目的的开放问题。如果您对如何从多个示例综合字符串操作感兴趣,请访问 Go Flash Fill 官方网站并阅读几篇论文。他们有伪代码和演示。电影也是如此。