vbscript 搜索模式前缀和 return 字
vbscript search for pattern prefix and return word
您好,我正在文件中搜索特定模式(前缀)并尝试 return 整个单词。该模式多次出现在文件中
例如:我有一个文本文件,其中包含如下文本:-
[CATS].[Hello_World] Lorem Ipsum [CATS].[Hi_Venus] Demo Text [CATS].[Yo_Moon] Lorm Ipsum
文本文件中没有正确的行,意味着一行可能包含
整件事 returning 行是有问题的。
程序应该 return [Hello_World], [Hi_Venus], [Yo_Moon] 匹配模式 [CATS].
我的 Cureent 代码(.hta 文件)是:-
Dim sStartPath, sStartFile, sFilter, sCaption, filePath
sStartPath = "D:\Remote"
sStartFile = sStartPath & "\nul"
sFilter = "All Files (*.*)|*.*|" _
& "VBScript (*.vbs;*.vbc)|*.vbs;*.vbc|" _
& "HTML (*.htm;*.html;*.hta)|*.htm;*.html;*.hta|"
sCaption = "Choose a File:"
Sub ProcessFile()
On Error Resume Next
filePath = document.My_Process_Form.txtfile.value
Set contents = filePath.OpenAsTextStream
If err.number = 0 then
Linenum = 0
Do Until contents.AtEndOfStream
line = contents.readline
Linenum = Linenum + 1
Test = Instr(line, [CATS])
If Isnull(Test) = false then If Test > 0 then demo.innerText = "1" & filePath & " " & Linenum
Loop
Else
err.clear
End If
End Sub
我正在 hta 应用程序中使用它和其他几个功能。
returns 包含模式的文件路径和行号。但我希望它如上所述搜索前缀和 return 下一个元素。
使用正则表达式在 []
中查找前面有 [CATS].
的文本 如
>> s = "[CATS].[Hello_World] Lorem Ipsum [CATS].[Hi_Venus] Demo Text [CATS].[Yo_Moon] Lorm Ipsum "
>> Set r = New RegExp
>> r.Global = True
>> r.Pattern = "\[CATS\]\.(\[[^]]+\])"
>> Set ms = r.Execute(s)
>> For Each m In ms
>> WScript.Echo m.SubMatches(0)
>> Next
>>
[Hello_World]
[Hi_Venus]
[Yo_Moon]
您好,我正在文件中搜索特定模式(前缀)并尝试 return 整个单词。该模式多次出现在文件中
例如:我有一个文本文件,其中包含如下文本:-
[CATS].[Hello_World] Lorem Ipsum [CATS].[Hi_Venus] Demo Text [CATS].[Yo_Moon] Lorm Ipsum
文本文件中没有正确的行,意味着一行可能包含 整件事 returning 行是有问题的。 程序应该 return [Hello_World], [Hi_Venus], [Yo_Moon] 匹配模式 [CATS].
我的 Cureent 代码(.hta 文件)是:-
Dim sStartPath, sStartFile, sFilter, sCaption, filePath
sStartPath = "D:\Remote"
sStartFile = sStartPath & "\nul"
sFilter = "All Files (*.*)|*.*|" _
& "VBScript (*.vbs;*.vbc)|*.vbs;*.vbc|" _
& "HTML (*.htm;*.html;*.hta)|*.htm;*.html;*.hta|"
sCaption = "Choose a File:"
Sub ProcessFile()
On Error Resume Next
filePath = document.My_Process_Form.txtfile.value
Set contents = filePath.OpenAsTextStream
If err.number = 0 then
Linenum = 0
Do Until contents.AtEndOfStream
line = contents.readline
Linenum = Linenum + 1
Test = Instr(line, [CATS])
If Isnull(Test) = false then If Test > 0 then demo.innerText = "1" & filePath & " " & Linenum
Loop
Else
err.clear
End If
End Sub
我正在 hta 应用程序中使用它和其他几个功能。 returns 包含模式的文件路径和行号。但我希望它如上所述搜索前缀和 return 下一个元素。
使用正则表达式在 []
中查找前面有 [CATS].
的文本 如
>> s = "[CATS].[Hello_World] Lorem Ipsum [CATS].[Hi_Venus] Demo Text [CATS].[Yo_Moon] Lorm Ipsum "
>> Set r = New RegExp
>> r.Global = True
>> r.Pattern = "\[CATS\]\.(\[[^]]+\])"
>> Set ms = r.Execute(s)
>> For Each m In ms
>> WScript.Echo m.SubMatches(0)
>> Next
>>
[Hello_World]
[Hi_Venus]
[Yo_Moon]