簡體   English   中英

正則表達式驗證並從字符串中提取數據

[英]Regex to validate and extract data from string

我正在嘗試在.net c#中創建2個正則表達式。

  1. 驗證用戶編寫的輸入具有以下格式一次或多次:

樣品:

/TEXT;dd-mm-yyyy;TEXT/TEXT;dd-mm-yyyy;TEXT/TEXT;dd-mm-yyyy;TEXT

要么

/TEXT;dd-mm-yyyy;TEXT

至少應輸入1次。 中間部分:dd-mm-yyyy應該是類似於1997年2月20日的日-月-年。在文本部分中,不應有任何/否則我接受regex將失敗。

  1. 第二個正則表達式將提取“組”。

我嘗試過:

string test = "/TEXT;dd-mm-yyyy;TEXT/TEXT;dd-mm-yyyy;TEXT/TEXT;dd-mm-yyyy;TEXT";
            string reguexp = "[\\/(\\w+;\\w+;\\w+)+]";
            foreach (System.Text.RegularExpressions.Match match in System.Text.RegularExpressions.Regex.Matches(test, reguexp))
            {
                Console.WriteLine("'{0}' found at index {1}.", match.Value, match.Index);
            }

但是,由於無法檢測到每個字符作為匹配項,因此我想一一提取“組” /TEXT;dd-mm-yyyy;TEXT ,以便以后進行任何額外的數據處理。

我嘗試從第二個正則表達式開始,以為一旦我有了這個正則表達式,另一個就應該更容易了。

任何幫助都可以接受。 最好的祝福

您應該使用網上論壇:

var strRegex = @"(?<date>\d{2}-\d{2}-\d{4})+";
var myRegex = new Regex(strRegex, RegexOptions.None);
var strTargetString = @"01-02-2000;15-03-2018";

foreach (Match myMatch in myRegex.Matches(strTargetString))
{
    var dateString = myMatch.Groups["date"].Value;

    // TODO: Check dateString is valid date (e.g. with DateTime.TryParseExact(...))
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM