使用正则表达式获取用换行符分隔的单词之间的文本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用正则表达式获取用换行符分隔的单词之间的文本相关的知识,希望对你有一定的参考价值。
我需要在两个单词之间获取文本,但这两个单词在vb脚本中使用正则表达式在不同的行中。
例如,
你好,世界 信息地址908 BLVD 大道物业类型占用
我需要使用正则表达式“908 BLVD Avenue”。所以我的正则表达式模式必须是“地址”和“属性类型”之间的任何内容。直到现在,我能够使用(?<=地址)(。*) s找到“908 BLVD”,但无法在相同的正则表达式函数中获取属性类型之前的文本。
谢谢
答案
在下面的示例中,代码[sS]+
意味着我们正在寻找与所有空格和所有非空格的匹配,这仅仅意味着一切。它需要与VBScript的RegeExp中的换行符匹配。
另一方面,模式中的下一个?
意味着我们不是在寻找一个贪婪的比赛,所以它会在遇到的第一个Property Type
停止。否则,正则表达式引擎将继续扫描,直到文本结束,以便不必要地查找其他匹配项。
str = "Hello World" & vbNewLine & _
"Information Address 908 BLVD" & vbNewLine & _
"Avenue Property Type Occupied"
Set ReAddress = New RegExp
ReAddress.Pattern = "Address ([sS]+?) 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
以上是关于使用正则表达式获取用换行符分隔的单词之间的文本的主要内容,如果未能解决你的问题,请参考以下文章