我们正在我们的网络应用程序中实现一项功能,该功能可以读取电子邮件主题并检查主题是否包含一个包含ID的字符串,以便我们可以将传入的电子邮件与我们应用程序中的项目进行匹配。
主题可能如下所示:备用船只要求07.03.2013 [FIX:1012]
我需要在方括号中识别字符串并从中拉出数字:'1012'
到目前为止,我已经想出了这个:
\[[a-z]{5}:[0-9]{4}\]\Z
但这只匹配整个字符串:[FIX:1012]
我从哪里开始?
答案 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);
}
同时强>
我不确定[a-z]{5}
对你的字符串的作用(这只是5个小写字符)。
答案 1 :(得分:0)
这是你的正则表达式代码:
[0-9]+(?:\.[0-9]*)?+(:*?])
这将为您提供1012号码,该号码位于“:”“]”
之间