2
下面我有一個示例測試用例,我只想抓住星期六值,如果單詞Blah出現在它之前。下面是我得到的,但由於某種原因,我最終得到了「Blah」。任何幫助都會很棒。謝謝!如何爲caputure只匹配部分匹配的字符串?非捕獲組
Sub regex_practice()
Dim pstring As String
pstring = "foo" & vbCrLf & "Blah" & vbCrLf & vbCrLf & "Saturday"
'MsgBox pstring
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
With regex
.Pattern = "(?:Blah)((.|\n)*)Saturday"
.Global = True 'If False, would replace only first
End With
Set matches = regex.Execute(pstring)
'(。| \ n)*'不是*相當*不好,這太可怕了。請不要建議 - 除非它是ElasticSearch。順便說一句,匹配任何字符的原生ES5結構是'[^]',但'[\ s \ S]'沒問題。 –
謝謝!這確實有助於很多。我從這裏得到了(。| \ n)*結構(第二個答案),190個讚揚聲。 https://stackoverflow.com/questions/159118/how-do-i-match-any-character-across-multiple-lines-in-a-regular-expression – user60887
@ user60887:在鏈接的問題是:*使用與JavaScript相同的方法,'([\ s \ S] *)'。*很高興幫助順便說一句。 –
Jan