我们正在我们的 Web 应用程序中实现一项功能,该功能可以读取电子邮件主题并检查主题中是否存在包含 ID 的特定字符串,以便我们可以将传入的电子邮件与应用程序中的项目进行匹配。
主题可能如下所示:备用船舶要求 07.03.2013 [FIX:1012]
我需要识别方括号中的字符串并从中提取数字:'1012'
到目前为止,我想出了这个:
\[[a-z]{5}:[0-9]{4}\]\Z
但这仅匹配整个字符串:[FIX:1012]
我从这里去哪里?
使用后视和前瞻:
(?<=\[[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 个小写字符)。
这是您的正则表达式代码:
[0-9]+(?:\.[0-9]*)?+(:*?])
这将为您提供介于“:”“]”之间的 1012 数字