在文本文件中查找并替换正则表达式

时间:2015-05-21 07:58:04

标签: regex vbscript jenkins

我正在为构建比较构建一个jenkins工作。我想用单个新行(\ n)替换文本文件中的双换行符(\ n \ n)。之后我想替换 word" commit"的每个实例。用换行符提交,即" \ ncommit" 。我想为此使用 vbscript ,任何人都可以建议如何做到这一点?

目前我正在使用以下VBScript:

Const ForReading = 1
Const ForWriting = 2

strName = Wscript.Arguments(0)
strOriginal = Wscript.Arguments(1)
strReplacement = Wscript.Arguments(2)

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strName, ForReading)

strText = objFile.ReadAll
objFile.Close

' Replace desired string
Set objRegExp = New RegExp
objRegExp.Global = True
objRegExp.IgnoreCase = False
objRegExp.Pattern = strOriginal
strReplacement = objRegExp.Replace(strText, strReplacement)

Set objFile = objFSO.OpenTextFile(strName, ForWriting)
objFile.Write strReplacement
objFile.Close

该脚本用正常字符串替换正则表达式模式,即它用正常字符串替换双换行符,即用字符串\n替换。我不知道如何扩展它以用正则表达式替换正则表达式。

1 个答案:

答案 0 :(得分:0)

正则表达式对此有些过分。使用两个字符串替换:

strText = objFSO.OpenTextFile(strName, ForReading).ReadAll

strText = Replace(strText, vbLf & vbLf, vbLf)
strText = Replace(strText, "commit", vbLf & "commit")

objFSO.OpenTextFile(strName, ForWriting).Write strText