簡體   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