1

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

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

我需要识别方括号中的字符串并从中提取数字:'1012'

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

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

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

我从这里去哪里?

4

2 回答 2

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 个小写字符)。

于 2013-03-07T13:08:52.630 回答
0

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

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

这将为您提供介于“:”“]”之间的 1012 数字

于 2013-03-07T13:16:17.977 回答