• 締切済み

VBScriptでの文字列置換処理

10列あるCSVファイルに初期値0の列を5番目に追加したいので .vbsファイルを作成し下記のように書きました。(抜粋) でも置換されたファイルが作成されず困っています。 Set objFS = CreateObject("Scripting.FilesystemObject") Set objInFile = objFS.OpenTextFile(strTargetFile, ForReading) strData = objInFile.ReadAll objInFile.Close   strData = ReplaceTest(strData, "^(.*?,)(.*?,)(.*?,)(.*?,)(.*)$", "\1\2\3\40,\5")    strNewFilePath = getFilePath(strTargetFile) strNewFile = objFS.BuildPath(strNewFilePath, objFS.GetTempName) Set objNewFile = objFS.CreateTextFile(strNewFile, ForWriting) '中間ファイルへの書き込み objNewFile.Write strData objNewFile.Close objFS.DeleteFile strTargetFile objFS.MoveFile strNewFile, strTargetFile '置換関数 Function ReplaceTest(str1, patrn, replStr) Dim regEx Set regEx = New RegExp regEx.Pattern = patrn regEx.IgnoreCase = True ReplaceTest = regEx.Replace(str1, replStr) ' 置換します。 End Function

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

"\1\2\3\40,\5"が"$1$2$3$40,$5"といった具合では無いですか また パターンの最後の$があると失敗しているようですよ ・・・

taku_pon
質問者

お礼

そのようです。 $にしたらできました。 ありがとうございます。