使用正则表达式替换文本文件中的所有文本

Pan*_*aju 5 vbscript excel vba excel-vba

我有一个包含以下文字的文本文件

161624.406 : Send:[sometext1]
161624.437 : Send:[sometext2]
161624.468 : Send:[sometext3]
161624.499 : Send:[sometext4]
161624.531 : Send:[sometext5]

我想只保留该文件中的sometext部分.期望的输出是

sometext1
sometext2
sometext3
sometext4
sometext5

我在Excel-VBA中使用以下代码

Public Sub testa()
    a = "C:\Users\pankaj.jaju\Desktop\test.log"

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTxtFile = objFSO.OpenTextFile(a, 1)
    strText = objTxtFile.ReadAll
    objTxtFile.Close
    Set objTxtFile = Nothing


    Set objRegEx = CreateObject("VBScript.RegExp")
    With objRegEx
        .Global = True
        .MultiLine = True
        .Pattern = "\[([^]]+)\]"
        Set objRegMC = .Execute(strText)
        b = objRegMC(0).SubMatches(0)
    End With
    Set objRegEx = Nothing

    Debug.Print b
End Sub
Run Code Online (Sandbox Code Playgroud)

问题是输出仅显示为sometext1.如何ReplaceAll在文本文件中保存仅包含所需文本的文件.

Por*_*ner 3

regex.Replace方法应该可以解决问题。

将您的模式分成如下组:"(.*?)(\[)([^]]+)(\])(.*?)"

现在您可以将输入字符串替换为匹配组,在本例中为第三组:objRegEx.Replace(strText, "$3")


以下是Excel 中正则表达式不同示例的有用链接。