【发布时间】:2015-04-14 02:06:41
【问题描述】:
我有这个 VBS 代码:
Option Explicit
Dim reMethod, reInterface
Dim vaction
Dim fileService
Dim mService
Dim lineService
Dim objFSO
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set fileService = objFSO.OpenTextFile("GIISAssuredController.java" , ForReading)
Set reMethod = new regexp
reMethod.Pattern = """\w+?""\.equals\(ACTION\)[\s\S]*?\{[\s\S]*?\.([^(]*)\("
reMethod.IgnoreCase = True
reMethod.Global = True
Do Until fileService.AtEndOfStream
lineService = fileService.ReadLine
For Each mService In reMethod.Execute(lineService)
vaction = mService.Submatches(0)
Set reInterface = new regexp
Wscript.Echo vaction
Next
Loop
还有“GIISAssuredController.java”:
} else if ("hello".equals(ACTION)) {
Integer assuredNo = giisAssuredService.saveAssured(assured);
正则表达式模式不起作用。
我希望输出是:
saveAssured
但相反,它没有回应任何东西。我在这里尝试了正则表达式模式 > https://regex101.com/r/kH3aZ4/1,它得到了“saveAssured”字符串。
【问题讨论】:
-
它是如何“不工作”的?你看到了什么实际结果?有没有错误?
-
它不回显任何东西。我提供了有关该问题的其他详细信息。
-
你在设置它的值之前使用
ForReading? -
我在
fileService使用了ForReading。 -
这永远不会像它所写的那样工作。您正在逐行读取输入文件,但您正在尝试匹配在两行上产生的模式。阅读完整文件,然后应用正则表达式。