使用正则表达式获取用换行符分隔的单词之间的文本

时间:2018-01-18 03:41:55

标签: regex vbscript

我需要在两个单词之间获取文本,但这两个单词在vb脚本中使用正则表达式在不同的行中。

例如,

  

Hello World
信息地址908 BLVD
Avenue物业类型   占用

我需要" 908 BLVD Avenue"使用正则表达式。所以我的正则表达式模式必须是"地址"和"物业类型"。直到现在,我能够找到" 908 BLVD"使用(?< = Address)(。*)\ s但无法在相同的正则表达式函数中获取属性类型之前的文本。

由于

1 个答案:

答案 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