使用Regex.Split()查找10个数字和2个字母

时间:2013-04-17 07:05:25

标签: c# regex

我遇到一个问题,我应该在多个电子邮件地址中输入一个10长的数字,并且本身有两个字母,例如1234567891AB

为了顺利完成这项工作,我尝试使用Regex.Split(),因为有更多关于相同信息的通信,我想将它添加到数组中。

输入:(来自Outlook)

"Here comes number on the consignment 1020289847AB."

我正在尝试编写一个如下所示的脚本:

string[] BODY = Regex.Split(item.body, @"[^\d$]");

当前outpub: 1020289847

我想要的输出: 1020289847AB

5 个答案:

答案 0 :(得分:0)

试试这个正则表达式

\d+([a-zA-Z]){2}

如果您想在前面专门定位10位数

\d{10}+([a-zA-Z]){2}

答案 1 :(得分:0)

然后你需要这样的东西:

@"\d{10}\D{2}"

答案 2 :(得分:0)

试试下面的正则表达式。抓取10位数,并允许2个字符的小写或大写。

\d{10}[a-zA-Z]{2}

(\d{10})([a-zA-Z]{2}) - Added Groups for digits and letters

答案 3 :(得分:0)

怎么样:

string[] BODY = Regex.Split(item.body, @"[^\d{10}[A-Z]{2}$]");

这只会匹配10个数字,后跟两个大写字母。

答案 4 :(得分:0)

如果你的数字后面只需要两个字符,那么你只需要使用它;

\d{10}\D{2}

一些示例匹配;

3753391729¾~
9446154600Û\

让我们编码;

string s = "Here comes number on the consignment 1020289847AB.";
Regex regex = new Regex(@"\d{10}\D{2}");
Match match = regex.Match(s);

if (match.Success)
{
    Console.WriteLine(match.Value);
}

输出是;

1020289847AB

这是DEMO