C# 特定正则表达式任务:

C# 特定正则表达式任务:,c#,regex,string,C#,Regex,String,我从字典中找到了30000多个字符串的列表,必须找到匹配项 (我必须找到所有与0到1000之间的数字匹配的单词,并且…每个数字都用字母表示) 对于考试编号121: {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

我从字典中找到了30000多个字符串的列表,必须找到匹配项

(我必须找到所有与0到1000之间的数字匹配的单词,并且…每个数字都用字母表示)

对于考试编号121:

{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+}
到regex格式。

我是这样看的:

  • 您正在将定义数字的所有符号转储到一个或多个匹配项中(对于1和2:[tdťnň])
  • 收到结果后,您的doing
    将打开匹配项,并找出匹配的字母所属的数字
  • 可能的正则表达式:

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

    如果我知道如何为一个数字创建正则表达式(对于考试121),那么我就可以通过编程为任何数字创建正则表达式了。这种方法适合从0到无穷大的任何数字(除了空字符串)。有什么问题吗?可能我问错了问题-我必须把这个{vouelsandh+}{one}{vouelsandh+}{two}{vouelsandh+}{one}{vouelsandh+}转换成regex格式。
    vouelsandh
    是数字之间必需的分隔符还是可以忽略的字符?如果有的话,“dtnt”是多少?
        [aáeéěiíoóuúůyýh]*(?:([tdťďnň])[aáeéěiíoóuúůyýh]*)+