-1

我有一个问题,我应该接收多个电子邮件地址,其数字长度为 10,并且本身有两个字母,例如1234567891AB.

为了顺利地做到这一点,我尝试使用我Regex.Split(),因为相同的信息有更多的通信,我想将它添加到数组中。

输入:(来自 Outlook)

"Here comes number on the consignment 1020289847AB."

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

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

当前出处: 1020289847

我想要的输出: 1020289847AB

4

5 回答 5

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.

于 2013-04-17T07:16:55.503 回答
0

然后你需要类似的东西:

@"\d{10}\D{2}"
于 2013-04-17T07:09:18.057 回答
0

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

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

(\d{10})([a-zA-Z]{2}) - Added Groups for digits and letters
于 2013-04-17T07:09:25.807 回答
0

怎么样:

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

仅当正好有 10 位数字后跟两个大写字母时才会匹配。

于 2013-04-17T07:09:41.040 回答
0

试试这个正则表达式

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

如果您想专门针对前面的 10 位数字

\d{10}+([a-zA-Z]){2}
于 2013-04-17T07:08:51.707 回答