我想选择两个已知字符串之间的所有文本。比如说以下文字
*starthere
*General Settings
* some text1
* some text2
*endhere
我想选择" * starthere"之间的所有文字。和" * endhere"使用vbscript。以便最终输出如下所示
*General Settings
* some text1
* some text2
我知道使用正则表达式会更简单,因为我读取的文件中有多个这种模式的实例。
我试过类似下面的内容
/(.*starthere\s+)(.*)(\s+*endhere.*)/
/(*starthere)(?:[^])*?(*endhere)/
但它们似乎不起作用,它甚至可以选择起始和结束字符串。 Lookforward和backword似乎也不起作用,我不确定他们是否支持vbscript。
这是我正在使用的代码:
'Create a regular expression object
Dim objRegExp
Set objRegExp = New RegExp 'Set our pattern
objRegExp.Pattern = "/\*starthere\s+([\s\S]*?)\s+\*endhere\b/" objRegExp.IgnoreCase = True
objRegExp.Global = True
Do Until objFile.AtEndOfStream
strSearchString = objFile.ReadLine
Dim objMatches
Set objMatches = objRegExp.Execute(strSearchString)
If objMatches.Count > 0 Then
out = out & objMatches(0) &vbCrLf
WScript.Echo "found"
End If
Loop
WScript.Echo out
objFile.Close
答案 0 :(得分:2)
您可以使用:
/\bstarthere\s+([\s\S]*?)\s+endhere\b/
并抓住被捕获的组#1
([\s\S]*?)
将匹配这两个标记之间的任何文字,包括换行符。