正则表达式在电子邮件主题行中查找ID代码

时间:2013-03-07 12:54:51

标签: c# .net regex

我们正在我们的网络应用程序中实现一项功能,该功能可以读取电子邮件主题并检查主题是否包含一个包含ID的字符串,以便我们可以将传入的电子邮件与我们应用程序中的项目进行匹配。

主题可能如下所示:备用船只要求07.03.2013 [FIX:1012]

我需要在方括号中识别字符串并从中拉出数字:'1012'

到目前为止,我已经想出了这个:

\[[a-z]{5}:[0-9]{4}\]\Z

但这只匹配整个字符串:[FIX:1012]

我从哪里开始?

2 个答案:

答案 0 :(得分:0)

使用后视和前瞻:

(?<=\[[a-z]{5}:)[0-9]{4}(?=\]\Z)

?<=是后视,?=是前瞻性的。

使用群组:

只需将其放在括号中即可将其放入第一组:

\[[a-z]{5}:([0-9]{4})\]\Z

使用群组会像(未经测试):

Match match = regex.Match(input);
if (match.Success)
{
    string v = match.Groups[1].Value;
    Console.WriteLine("{0}", v);
}

Reference

同时

我不确定[a-z]{5}对你的字符串的作用(这只是5个小写字符)。

答案 1 :(得分:0)

这是你的正则表达式代码:

     [0-9]+(?:\.[0-9]*)?+(:*?])

这将为您提供1012号码,该号码位于“:”“]”

之间