从 VBScript 中的文本文件中获取模式匹配值
Fetching the pattern matched value from text file in VBScript
我有一个文本文件,其中一行文本包含 1 个字符串:
--Result=PASS:Passed
--Result=FAIL:Failed
我正在尝试使用 VBScript 中的模式匹配概念来获取值 PASS 或 FAIL,但到目前为止只能匹配字符串并检索整行。请在下面找到正在使用的代码:
Dim oRE, oMatches
Set oRE = New RegExp
oRE.Pattern = "--Result=(PASS|FAIL).*"
Set objFileToRead = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\tmp\resultfile.txt",1)
Dim strline
do while not objFileToRead.AtEndOfStream
strline = objFileToRead.ReadLine()
Set oMatches = oRE.Execute(strline)
For Each oMatch in oMatches
result = oMatch.Value
Next
我现在得到的结果是整条匹配线。是否可以只从文本文件中获取 PASS 或 FAIL 子字符串而不是整行?
Match
始终是与模式匹配的整个字符串,您正在寻找 'Groups',这是您通过 SubMatches
在 vbscript 中获得的。
if oMatches.Count > 0 then
result = oMatches(0).SubMatches(0)
end if
如果您在模式中使用多个大括号,您可以通过 .SubMatches(1)
等在此处找到它们。
顺便说一句。您的模式不必匹配整个输入字符串(无论如何您都不使用锚 ^$
),您可以只使用 (PASS|FAIL)
作为模式,或者 =(PASS|FAIL):
。
我有一个文本文件,其中一行文本包含 1 个字符串:
--Result=PASS:Passed
--Result=FAIL:Failed
我正在尝试使用 VBScript 中的模式匹配概念来获取值 PASS 或 FAIL,但到目前为止只能匹配字符串并检索整行。请在下面找到正在使用的代码:
Dim oRE, oMatches
Set oRE = New RegExp
oRE.Pattern = "--Result=(PASS|FAIL).*"
Set objFileToRead = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\tmp\resultfile.txt",1)
Dim strline
do while not objFileToRead.AtEndOfStream
strline = objFileToRead.ReadLine()
Set oMatches = oRE.Execute(strline)
For Each oMatch in oMatches
result = oMatch.Value
Next
我现在得到的结果是整条匹配线。是否可以只从文本文件中获取 PASS 或 FAIL 子字符串而不是整行?
Match
始终是与模式匹配的整个字符串,您正在寻找 'Groups',这是您通过 SubMatches
在 vbscript 中获得的。
if oMatches.Count > 0 then
result = oMatches(0).SubMatches(0)
end if
如果您在模式中使用多个大括号,您可以通过 .SubMatches(1)
等在此处找到它们。
顺便说一句。您的模式不必匹配整个输入字符串(无论如何您都不使用锚 ^$
),您可以只使用 (PASS|FAIL)
作为模式,或者 =(PASS|FAIL):
。