簡體   English   中英

使用正則表達式從字符串日期獲取子字符串

[英]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

最好使用日期時間函數(如ParseExactTryParseTryParseExact等),因為它也會驗證每個部分。 但是,如果您確實需要正則表達式,請查看此正則表達式,它也將驗證月份部分:

(0?[1-9]|1[0-2])\.\d{2}$

演示版

暫無
暫無

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

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