2012-12-16 57 views
-1

我有來自Dictionary的30000+個字符串列表,必須找到匹配。具體的正則表達式任務:

(我必須找到與匹配的數字從0到1000,...每個數字是由字母代表所有字)考試號121

vowelsAndH = {a,á,e,é,ě,i,í,o,ó,u,ú,ů,y,ý,h}; 
one = {t,d,ť,ď}; 
two = {n,ň}; 
... 

{vowelsAndH+}{one}{vowelsAndH+}{two}{vowelsAndH+}{one}{vowelsAndH+} 

word "eděnautin" is Matched for 121 
word "dnautin" is Matched for 121 
word "dnaunin" is not Matched for 121, but is Matched for 122 

所以問題是,如何得到這個

{vowelsAndH+}{one}{vowelsAndH+}{two}{vowelsAndH+}{one}{vowelsAndH+} 

爲正則表達式格式。

+0

是'誓言elsAndH'是數字之間的必需分隔符還是簡單的字符被忽略? 「dtnt」是什麼數字,如果有的話? – HABO

回答

0

我看到它在這樣:

  1. 你傾銷定義數字的所有符號爲一個或比賽(1和2:tdťďnň])
  2. 後收到結果你做switch比賽並找出匹配的信屬於

可能正則表達式其中位數:

[aáeéěiíoóuúůyýh]*(?:([tdťďnň])[aáeéěiíoóuúůyýh]*)+ 
+0

如果我知道如何爲一個數字創建正則表達式(對於考試121),那我就足夠了,那麼我可以通過編程爲任何數字創建正則表達式。 –

+0

這種方法適合從0到無限的任何數字(空字符串除外)。有什麼問題? – ualinker

+0

也許我問了錯誤的問題 - 我必須把這個{vowelsAndH +} {one} {vowelsAndH +} {two} {vowelsAndH +} {one} {vowelsAndH +}改爲正則表達式格式。 –