我試圖驗證以下步驟正則表達式表達:如何正確地爲此格式化正則表達式?
例子:
1234567 Marko's word document 31.10.1998
僞例:
[Seven digit #] [space] [Unspecified amount of text] [space] [. delimited date]
有人能幫助我在構建一個?這是針對正則表達式的VBA風格。
我試圖驗證以下步驟正則表達式表達:如何正確地爲此格式化正則表達式?
例子:
1234567 Marko's word document 31.10.1998
僞例:
[Seven digit #] [space] [Unspecified amount of text] [space] [. delimited date]
有人能幫助我在構建一個?這是針對正則表達式的VBA風格。
我會從這裏開始。
^\d{7}\s.*\s\d{1,2}\.\d{1,2}\.\d{4}$
這是每個部分對應的內容。
(beginning) =^
[Seven digit #] = \d{7}
[space] = \s
[Unspecified amount of text] = .*
[space] = \s
[. delimited date] = \d{1,2}\.\d{1,2}\.\d{4}
(end) = $
但是在中間的.*
可能允許超過您的確定。 \d{1,2}\.\d{1,2}\.\d{1,4}$
也不會實際過濾日期,只是小數。因此,這將允許像「99.99.9999」的字符串
您可以使用此工具來磨練下來,如果你需要更具體的東西: https://regex101.com/r/dU5lQ3/2
不應該是'\ d {1,2} \。\ d {1,2} \。\ d {1,4}'位只是'\ d {2} \。\ d {2} \。 \ d {4}'或者vb不支持? –
我這樣做是因爲我認爲1.1.2010被接受,就像01.01.2010被接受一樣。但是你是對的,這取決於OP。我想盡管刪除\ d {1,4}是安全的。除非他們想要兩位數字年或1000年前的一年。 – Andrew
你有沒有編寫任何代碼是什麼?你卡在哪裏? –
取決於您希望日期驗證的嚴格程度。是'31.09.1998'一個有效的? – Fabricator