使用http://www.regexr.com/进行测试模式\"([\s\S]*?)\"
可以匹配我的目标字符串。但是,在我的代码中我得到类型不匹配并且不确定原因,IDE改变了字符串在引号内格式化的方式
Dim Matches
Dim objectRegularExp As RegExp
If Application.FileDialog(msoFileDialogOpen).Show <> -1 Then Exit Sub
FileName = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
Open FileName For Input As #1
yourText = Input(LOF(1), #1)
Close #1
LengthOfFile = Len(yourText)
'create regular expression
Set objectRegularExp = New RegExp
With objectRegularExp
.Pattern = "" \ "(\s\S*?)\""" <type mismatch runtime error
.Global = True
.MultiLine = True
End With
Set Matches = objectRegularExp.Execute(yourText)
答案 0 :(得分:1)
你的报价错了。
字符串用引号括起来。要在字符串中包含引号,您需要2个引号。你的字符串开头有两个引号(所以一个空字符串)你的字符串中间有一个引号。如果字符串在第一位有效,则终止该字符串。
通常我们使用非懒惰的方式
.Pattern = Chr(34)&amp; “\”&amp; Chr(34)&amp; “(\ s \ S *?)\”&amp; chr(34)