0

我试图编写一个匹配并捕获完整日期以及日期年份的正则表达式。

例子

TEXT: JAN 2013
CAPTURE: JAN 2013, 2013

我尝试使用:

[a-z]{3}\s(\d{4},*){2}

但是这个不行。如果有人可以帮忙。

4

2 回答 2

1

以下正则表达式为您提供了两个捕获组:

([A-Z]{3}\s(\d{4}))

其中第一个将包含“JAN 2013”​​和第二个“2013”​​。

Perl 中的示例:

$text = "JAN 2013";
@m = $text =~ /([A-Z]{3}\s(\d{4}))/;
print "First capture: $m[0]\n";
print "Second capture: $m[1]\n";

输出:

First capture: JAN 2013
Second capture: 2013
于 2013-09-10T08:57:18.187 回答
0

用 C# 编写你想要的代码(根据评论)。

对于参考,您可以查看MSDN - 正则表达式语言 - 快速参考,此处为http://msdn.microsoft.com/en-us/library/az24scfc.aspx

Regex r = new Regex(@"\A([a-z]{3}\s+(\d{4}))\Z",
                    RegexOptions.IgnoreCase);

MatchCollection match = r.Matches(text);
if (match.Count == 1)
{
     GroupCollection captures = match[0].Groups;
     String theCaptureYouWanted = captures[1] + ", " + captures[2];
     ...
于 2013-09-10T08:57:28.417 回答