VBS RegEx搜索和替换

时间:2014-10-03 18:24:05

标签: regex replace vbscript numbers

我正在尝试使用vbs脚本替换包含以下行的.ini文件中的限制值: CC_refund_limit = ####。## 不幸的是,####。##可以是任何美元价值。我正在替换标准: CC_refund_limit = 500.00

我尝试了以下内容,并且在人类已知的每个括号中都包含了\ d \ d +的每个变体,甚至在测试文件上尝试[0-999]。我可以使用以下代码的唯一方法是使用以下代码,并且仅当字符串包含写入的实际美元值时。我在多个不同的服务器上有超过1600个实例来替换它。

任何指导都将不胜感激:

`Const ForReading = 1
Const ForWriting = 2

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\EDC\Edc.ini", ForReading)

strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, "CC_refund_limit=200.00", "CC_refund_limit=500.00")

Set objFile = objFSO.OpenTextFile("C:\EDC\Edc.ini", ForWriting)
objFile.WriteLine strNewText
objFile.Close

`

1 个答案:

答案 0 :(得分:0)

 Const ForReading = 1 
 Const ForWriting = 2 
 Set objFSO = CreateObject("Scripting.FileSystemObject")
 Set objFile = objFSO.OpenTextFile("C:\EDC\Edc.ini", ForReading) 
 strText = objFile.ReadAll
 objFile.Close
Set r = New Regexp
With r
  .pattern = "CC_refund_limit=\d+\.\d+"
  .global = true
End with
StrNewText = r.Replace(strText,"CC_refund_limit=500.00")
Set objFile = objFSO.OpenTextFile("C:\EDC\Edc.ini", ForWriting) 
objFile.WriteLine strNewText 
objFile.Close