2015-03-31 10 views
0

我有我需要检查这个文本文件:多行正则表达式使用VB脚本

} else if ("saveAssured".equals(ACTION))         { 
   Integer assuredNo = giisAssuredService.saveAssured(assured); 

该模式将包括变量:

var = "saveAssured" 
reMethod.Pattern = """& var &""[.]equals\(ACTION\).{\n.\w+?.=.\w+?[.](\w+?)\(\w+?\)" 

我需要捕捉第二个“saveAssured”从文本文件。而'\ n'(新行)似乎不起作用。我用对了吗?我可以尝试哪些其他步骤?

回答

1

http://www.regular-expressions.info/dot.html

JavaScript和VBScript中没有一个选项,以使该点匹配 换行符。在这些语言中,您可以使用[\s\S]等字符 来匹配任何字符。此字符匹配 字符,该字符可以是空格字符(包括换行符 字符),也可以是不是空白字符的字符。由于 所有字符都是空白或非空白字符,因此该字符 类匹配任何字符。

而且看看https://regex101.com/r/kH3aZ4/1
测试是JavaScript,但由于它们具有相同的正则表达式的味道,这种模式也将使用VBScript工作。

Dim reMethod 
Set reMethod = New RegExp 
    reMethod.IgnoreCase = True 
    reMethod.Pattern = """saveAssured""\.equals\(ACTION\)[\s\S]*?\{[\s\S]*?\.([^(]*)\(" 
+0

我试过了,它仍然不适合我。 – ladiesman1792 2015-04-14 01:42:12

+0

现在正在工作。谢谢。刚刚在我的VBS的一些部分有一些逻辑错误:http://stackoverflow.com/questions/29618032/regex-pattern-not-working-in-vb-script?noredirect=1#comment47386439_29618032。 – ladiesman1792 2015-04-14 09:09:08