• ベストアンサー

テキストファイル中の文字列を書き換えるスクリプトを書きたい

テキストファイルの文字列を書き換えるスクリプトを考えています。 今、次のところまで出来るようになりました。本当は「こんにちは」の文字列を全て「HELLO」に置換したいのです。現在は一行の中で最初の「こんにちは」は置換されますが、2番目以降が置換されません。同じ行中の2番目以降も置換するには、どうしたら良いでしょうか? <置換前ファイル:sample.txtの中身> こんにちはこんにちはこんにちはこんにちは こんにちは こんにちは <置換前ファイル:sample.txtの中身> HELLOこんにちはこんにちはこんにちは HELLO HELLO <置換スクリプト> Set fso = CreateObject("Scripting.FileSystemObject") Set regEx = New RegExp Set inFile = fso.OpenTextFile("C:\static\sample.txt") Set outFile = fso.CreateTextFile("C:\static\sample1.txt") regEx.Pattern = "こんにちは" repStr = "HELLO" Do Until inFile.AtEndOfStream tempLine = inFile.ReadLine repLine = regEx.Replace(tempLine, repStr) outFile.WriteLine repLine Loop inFile.Close outFile.Close

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

#2の方のようにすればいいと思いますが、 この場合であれば、特に正規表現が必要というわけではないので、RegExp オブジェクトを使う必要は無いと思います。 repLine = Replace(tempLine, "こんにちは", repStr) で一行全部の置換が行えます

kumar
質問者

お礼

ありがとうございます。参考になりました。

その他の回答 (2)

noname#223623
noname#223623
回答No.2

GlobalをTrueにしたらどうでしょうか。  regEx.Pattern = "こんにちは"  regEx.Global = True <- これ追加  repStr = "hello"

kumar
質問者

お礼

ありがとうございます。参考になりました。

noname#25358
noname#25358
回答No.1

 Replace じゃなくて ReplaceAll ってのが別にあるんじゃなかったでしたっけ。  以前やったんですけど、もう昔のことなんで自信なしで(^_^;

関連するQ&A