繁体   English   中英

C#简单正则表达式名称组捕获

[英]C# Simple regex name group capturing

我有这个简单的代码来捕获C#中的命名正则表达式组,但是只有一个名称组值是非空的。 任何帮助将非常感激。

var formatter = "yyyy-MM-dd";

var regex = new Regex("(?<month>MM)|(?<day>dd)|(?<year>yyyy|yy)|([^a-zA-Z])");

var match = regex.Match(formatter);

if (match.Success)
{
    var day = match.Groups["day"];
    var month = match.Groups["month"];
    var year = match.Groups["year"];
}

由于OR运算符|,只有一个将获得值。 使用以下

(?<year>yyyy)-(?<month>MM)-(?<day>dd)

我不太确定为什么最后要在([^a-zA-Z])上进行匹配,但是您可能想尝试一下: ((?<month>MM)|(?<day>dd)|(?<year>yyyy|yy)|(-))*

如果对您不起作用,请告诉我为什么您要匹配末端部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM