我需要在两个单词之间获取文本,但这两个单词在vb脚本中使用正则表达式在不同的行中。
例如,
Hello World
信息地址908 BLVD
Avenue物业类型 占用
我需要" 908 BLVD Avenue"使用正则表达式。所以我的正则表达式模式必须是"地址"和"物业类型"。直到现在,我能够找到" 908 BLVD"使用(?< = Address)(。*)\ s但无法在相同的正则表达式函数中获取属性类型之前的文本。
由于
答案 0 :(得分:1)
在下面的示例中,代码[\s\S]+
表示我们正在查找与所有空格和所有非空格的匹配,这仅仅意味着所有内容。它需要与VBScript的RegeExp中的换行符匹配。
另一方面,模式中的下一个?
意味着我们不会看到贪婪的匹配,所以它会在遇到的第一个Property Type
时停止。否则,正则表达式引擎将继续扫描直到文本结束,以便不必要地找到其他匹配项。
str = "Hello World" & vbNewLine & _
"Information Address 908 BLVD" & vbNewLine & _
"Avenue Property Type Occupied"
Set ReAddress = New RegExp
ReAddress.Pattern = "Address ([\s\S]+?) Property Type"
Set matches = ReAddress.Execute(str)
If matches.Count > 0 Then
'print first group of first match
WScript.Echo matches.Item(0).Submatches(0)
Else
'no matches found
End If
预期产量:
908 BLVD
Avenue