使用VBS提取文本文件中的字符串

Extract a string on a text file using VBS

好的,我有这个文件 sample.txt

("checkAssdMobileNo1".equals(ACTION)
("checkAssdMobileNo2".equals(ACTION)
("checkAssdMobileNo3".equals(ACTION)
("checkAssdMobileNo4".equals(ACTION)
("checkAssdMobileNo5".equals(ACTION)
("checkAssdMobileNo6".equals(ACTION)

如何只输出这些:

checkAssdMobileNo1
checkAssdMobileNo2
checkAssdMobileNo3
checkAssdMobileNo4
checkAssdMobileNo5
checkAssdMobileNo6

我尝试使用以下代码,但它不会输出任何内容,而且我无法弄清楚我做错了什么:

Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set file = objFSO.OpenTextFile("sample.txt" , ForReading)  
Const ForReading = 1

Dim re
Set re = new regexp
re.Pattern = """\w+?""[.]equals(ACTION)"
re.IgnoreCase = True
re.Global = True

Dim line
Do Until file.AtEndOfStream
    line = file.ReadLine
    For Each m In re.Execute(line)
       Wscript.Echo m.Submatches(0)
    Next
Loop

您需要的正则表达式是

\("(\w+)"

Demo on regex101

它使用了Group Capture

的概念

您的正则表达式很接近,但缺少两件事:

  • 您需要转义 ACTION
  • 两边的括号
  • 您需要使用非转义括号来提取引号之间的组

像这样的东西应该可以工作:

re.Pattern = """(\w+?)""[.]equals\(ACTION\)"