我是新來的正則表達式,並且難以獲取我在網上找到的模式,以在VBScript/VBA中工作。這個應該返回一個在字符串中找到的日期,但它沒有找到任何日期。 VBScript/VBA與其他RegEx引擎不同,使其無法返回匹配項?VBA正則表達式匹配日期
編輯1
我從我的模式中刪除了^和$。問題依然存在。
Private Sub TestDate()
MsgBox RegExDate("cancel on 12/21/2010 ")
End Sub
Private Function RegExDate(s As String) As String
Dim re, match
Set re = CreateObject("vbscript.regexp")
re.Pattern = "(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))"
re.Global = True
For Each match In re.Execute(s)
MsgBox match.value
RegExDate = match.value
Exit For
Next
Set re = Nothing
End Function
很棒的建議,但不能解決問題。 – HK1
我已經更新了您的代碼示例中的新RegEx的答案,但不確定它是否過於具體? – ipr101
關於所需更改的任何解釋?還有關於如何使其找到(mm/dd/yyyy)或(mm-dd-yyyy)的任何想法? – HK1