簡體   English   中英

使preg_match貪婪的正則表達式只接受某些值?

[英]Making regex for preg_match greedy to only accept certain values?

我有一個CSV文件,其中包含一個表示時間/日期的字符串,如下所示:

20190816T16:10:10

我已經為preg_match創建了以下正則表達式,但希望將小時/分鍾和秒設置為僅允許某些數字(例如,小時為24小時制,因此僅接受00-23,而分鍾和秒僅接受00-59)

/\\d{8}[AZ]\\d{2}:\\d{2}:\\d{2}/

誰能建議如何更改此設置以確保此正則表達式與我要實現的結構匹配?

您需要修改模式以匹配構成這些范圍的基礎字符串:

/\d{8}[A-Z](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]/

演示版

此正則表達式應符合您的結構:

\d{8}[A-Z]([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]

您可以將范圍 (例如: [0-9] )與非捕獲組一起使用(小時和分鍾容易匹配):

//            00 to 23       00 to 59
/\d{8}[A-Z](?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d/

暫無
暫無

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

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