- 締切済み
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
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- redfox63
- ベストアンサー率71% (1325/1856)
"\1\2\3\40,\5"が"$1$2$3$40,$5"といった具合では無いですか また パターンの最後の$があると失敗しているようですよ ・・・
お礼
そのようです。 $にしたらできました。 ありがとうございます。