【问题标题】:Regex pattern not working in VB Script正则表达式模式在 VB 脚本中不起作用
【发布时间】: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”字符串。

此问题与:Multiline REGEX using VB Script

【问题讨论】:

  • 它是如何“不工作”的?你看到了什么实际结果?有没有错误?
  • 它不回显任何东西。我提供了有关该问题的其他详细信息。
  • 你在设置它的值之前使用ForReading
  • 我在fileService使用了ForReading
  • 这永远不会像它所写的那样工作。您正在逐行读取输入文件,但您正在尝试匹配在两行上产生的模式。阅读完整文件,然后应用正则表达式。

标签: regex vbscript


【解决方案1】:

如果表达式需要匹配多行生成的文本,但您逐行读取文件并逐行测试,则永远不会匹配。

Option Explicit

    Const ForReading = 1

Dim code
    code = CreateObject("Scripting.FileSystemObject" _ 
           ).OpenTextFile("GIISAssuredController.java" , ForReading _ 
           ).ReadAll() 

Dim mService

    With new RegExp 
        .Pattern = """\w+?""\.equals\(ACTION\)[\s\S]*?\{[\s\S]*?\.([^(]*)\("
        .IgnoreCase = True
        .Global = True
        For Each mService in .Execute(code)
            WScript.Echo mService.Submatches(0)
        Next 
    End With 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-25
    • 1970-01-01
    • 2013-09-08
    • 2015-06-04
    • 2020-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多