使用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+)"
它使用了Group Capture
的概念
您的正则表达式很接近,但缺少两件事:
- 您需要转义
ACTION
两边的括号
- 您需要使用非转义括号来提取引号之间的组
像这样的东西应该可以工作:
re.Pattern = """(\w+?)""[.]equals\(ACTION\)"
好的,我有这个文件 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+)"
它使用了Group Capture
的概念您的正则表达式很接近,但缺少两件事:
- 您需要转义
ACTION
两边的括号
- 您需要使用非转义括号来提取引号之间的组
像这样的东西应该可以工作:
re.Pattern = """(\w+?)""[.]equals\(ACTION\)"