我正嘗試使用RegEx從多行字符串中獲取數據塊。VBScript正則表達式 - 查找模式之間的數據塊
要搜索的字符串
***** a.txt 17=xxx 570=N 55=yyy ***** b.TXT 17=XXX 570=Y 55=yyy ***** ***** a.txt 38=10500.000000 711=1 311=0000000006630265 ***** b.TXT 38=10500.000000 311=0000000006630265 *****
我需要 - 東西之間*****阻止
17=xxx 570=N 55=yyy 17=XXX 570=Y 55=yyy 38=10500.000000 711=1 311=0000000006630265 38=10500.000000 311=0000000006630265
到目前爲止我的代碼
Set objRegEx = CreateObject("VBScript.RegExp") objRegEx.Global = True objRegEx.MultiLine = True objRegEx.IgnoreCase = True objRegEx.Pattern = "\*\*\*\*\*(?:.|\n|\r)*?\*\*\*\*\*" Set strMatches = objRegEx.Execute(objExec.StdOut.ReadAll()) If strMatches.Count > 0 Then For Each strMatch In strMatches Wscript.Echo strMatch Next End If Set objRegEx = Nothing
謝謝Wiktor。幾個問題與這個模式 - 1)標題也提取(例如***** a.txt)。我不需要那個。 2)它也匹配*****&***** a.txt之間的空行。 –
好吧,2)是真實的,但它很容易處理與前瞻(見我更新的答案)。至於1),我說你必須訪問'strMatch.Submatches(0)'中的第一項。注意你不需要設置'objRegEx.MultiLine = True'。 –
當我使用第二個正則表達式時,我在最後得到了*****,當我使用第一個正則表達式時,我得不到它。 –