[英]Get substring from string date using regex
我有這個字符串“ Date.2014.07.04”
然后,如果我想使用正則表達式從上面的字符串中獲取“ 07”。
我怎么做?
我不想使用拆分。
為什么我不想使用split? 因為當我們拆分時,結果將在字符串數組中。 通常,我們將嘗試獲取所需的數組索引。 就我而言
var date = "Date.2014.07.04";
date.Split('.')[2];
但是,可以說我們將日期更新為新字符串(刪除所有“。”)。
var date = "Date20140704";
date.Split('.')[2];
因為找不到索引號2,這將引發錯誤。
通過使用正則表達式,不會發生此錯誤,並且如果在字符串中找不到我們想要的模式,它將僅返回空字符串。 :)
您最好解析日期,然后使用DateTime.ParseExact獲取所需的部分,但必須刪除Date.
從日期字符串開始。
DateTime dt = DateTime.ParseExact(strDate.Replace("Date.",""), "yyyy.MM.dd", CultureInfo.InvariantCulture);
int month = dt.Month;
您也可以使用string.Split
string month = strDate.Split('.')[2];
只是這樣做:
"Date.2014.07.04".Split('.')[2];
由於您堅持使用正則表達式,因此請執行以下操作:
var value = Regex.Match("Date.2014.07.04",@"(?<=\w{4}\.\d{4}\.)\d+").Value
最好使用日期時間函數(如ParseExact
或TryParse
或TryParseExact
等),因為它也會驗證每個部分。 但是,如果您確實需要正則表達式,請查看此正則表達式,它也將驗證月份部分:
(0?[1-9]|1[0-2])\.\d{2}$
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.