如何使用正则表达式将4个字符代码与实际单词匹配

时间:2013-12-05 11:14:04

标签: c# regex

使用以下格式的代码[Alphanumeric][Letter][Alphanumeric][Alphanumeric],即A1AA

现在我还有一本我试图阻止的所有4个字母单词的字典,R2D2

我正在寻找的是一个正则表达式,用于查找字典中每个代码和项目的匹配项,但还要更进一步,并替换看起来相似的字符和字母,即i1s5,看看是否有任何匹配。

那里有类似的东西

2 个答案:

答案 0 :(得分:0)

假设您的词典包含以下代码:

R2D2
C3P0
X5ZZ

我会加载dictionnary并在正常情况下构建一个正则表达式。最终的正则表达式是:

(?-i)(R2D2|C3P0|X5ZZ)

然后将此正则表达式应用于您的每个代码

If Regex.Matches(finalRegex) Then
   // Evil code catched
Else
   // Nice code found ...
End If

答案 1 :(得分:0)

我会给你一个开端

var matches = Regex.Matches(@"A1AA", @"([a-zA-Z0-9][a-zA-Z][a-zA-Z0-9][a-zA-Z0-9])");
foreach(Match match in matches)
{
    Console.WriteLine(match.Groups[1].Value);
}

正则表达式代码[a-zA-Z0-9]的这一部分将捕获任何字母数字字符。

然后,您可以针对词典进行匹配的foreach循环。