我已經從科學文獻中提取了一系列表格,這些表格由各自爲不同類型的列組成。這裏是一個例子創建一個字符串列表的正則表達式
我希望能夠爲每列自動生成正則表達式。顯然,有平凡的解決方案,如.*
所以我想補充一點,他們只用了約束:
[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