我已经从科学文献中提取了一系列表格,这些表格由各自为不同类型的列组成。这里是一个例子创建一个字符串列表的正则表达式
我希望能够为每列自动生成正则表达式。显然,有平凡的解决方案,如.*
所以我想补充一点,他们只用了约束:
[A-Z] [a-z] [0-9]
- 明确标点符号(如
','
,'''
) - “简单” 的量词(例如
{3,4}
上表中的“最佳”答案是:
[A-Z]{3}
[A-Za-z\s\.]+
\d{4}\sm
\d{2}\u00b0\d{2}'\d{2}"N,\d{2}\u00b0\d{2}'\d{2}"E
(speciosissima|intermediate|troglodytes)
(hf|sr)
\d{4}
当然,如果我们移动到地理区域之外,第四个正则表达式会中断,但软件不知道。目标是收集许多正则表达式,例如说“坐标”并概括它们,可能是部分手动的。只有在有少量不同的字符串时才会创建枚举。
我很感激能够做到这一点的(特别是F/OSS)软件的例子,特别是在Java中。 (这与Google的Refine相似)。我知道this question 4 years ago,但这并没有真正回答这个问题,而text2re这个网站似乎是互动的。
注:我注意到投票结束为“过于本地化”。这是一个非常普遍的问题(表中给出的仅仅是一个例子),正如Google/Freebase开发Refine所示,以解决这个问题。它可能涉及各种各样的表格(例如金融,新闻等)。这里有一个浮点值:
自动确定某些权威机构实时报告年龄(例如不是几个月,几天)并使用2位数的精度将是有用的。
另一个“关闭”投票为“off topic”。鉴于迄今为止的答案正好与编程技术有关,它的范围似乎很清楚。 – 2013-05-11 22:39:51
什么langugies是这样的reffxes不同 – Mark 2013-05-12 00:00:18
@mark:我的理解是,这个问题更多的是为每个表列找到一个模型,而不是必须使用任何特定的正则表达式包,或者实际上,正则表达式。 – 2013-05-12 01:18:35