在线服务Kimono提供供用户选择的GUI 页面元素然后使用所选元素创建一个匹配这些选择的正则表达式。然后可以使用该正则表达式在不同时间点从同一页面提取信息。该服务很有用,因为您不必自己生成正则表达式查询,而是提供一组示例查询匹配,然后将其编译为查询正则表达式。该公司被收购,因此该服务不再可用。
然而问题似乎是一个有趣的问题,所以我的问题是:什么算法能够将大型文档中的大量示例(正面和负面都需要)转换为正则表达式,然后在应用时将匹配那些例子?
答案 0 :(得分:1)
正则表达式通常使用NFA和DFA实现
https://en.wikipedia.org/wiki/Nondeterministic_finite_automaton
https://en.wikipedia.org/wiki/Deterministic_finite_automaton
找到代表特定DFA的最小DFA的过程称为最小化 https://en.wikipedia.org/wiki/DFA_minimization
这需要转换回正则表达式 https://cs.stackexchange.com/questions/2016/how-to-convert-finite-automata-to-regular-expressions