2012-12-16 28 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 +}改为正则表达式格式。 –