2015-10-22 103 views
0

我想使用正則表達式在Excel中使用VBA從字符串中提取日期。使用正則表達式查找字符串中的日期

的字符串是:

Previous Month: 9/1/2015 - 9/30/2015 

或者可以這樣:

Custom: 9/1/2015 - 9/30/2015 

你有什麼想法,我怎麼能做到這一點?我以前從未使用正則表達式。

+1

試試這個正則表達式:):[** Regex101例**](https://regex101.com/r/oI1oO6/1) – benjamin

回答

1

試試這個:

([1-9]|1[012])[/]([1-9]|[1-2][0-9]|3[01])[/](19|20)[0-9]{2} 
+0

這exption似乎我正在使用它 –

2

正則表達式是日期的好選擇。你可以尋找:並檢查剩餘的符號:

Sub Foo() 
    Dim result() As Variant 

    result = GetDates("Previous Month: 9/1/2015 - 9/30/2015") 

    If UBound(result) Then 
     Debug.Print result(0) 
     Debug.Print result(1) 
    End If 
End Sub 

Function GetDates(str As String) As Variant() 
    Dim tokens() As String 
    tokens = Split(Mid$(str, InStr(str & ": ", ":")), " ") 

    If (UBound(tokens) = 3) Then 
     If IsDate(tokens(1)) And IsDate(tokens(3)) Then 
      GetDates = Array(CDate(tokens(1)), CDate(tokens(3))) 
      Exit Function 
     End If 
    End If 

    ReDim GetDates(0) 
End Function 
相關問題