人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VBSの質問です
aa.txt
****************
<tr>
<td>2</td>
<tr>
<td>2</td>
<tr>
<td>2</td>
****************
をVBSで置換し
****************
<tr><td>2</td>
<tr><td>2</td>
<tr><td>2</td>
****************
のように置換したいのですが
****************
Dim objFile ' 対象ファイル
Dim oldText ' 置換前テキスト
Dim newText ' 置換後テキスト
Dim objFSO ' ファイルシステムオブジェクト
Dim objRep ' 正規表現オブジェクト
Dim repText ' 置換後文字列
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("aa.txt")
oldText = objFile.ReadAll
repText = "<tr><td>"
Set objRep = New RegExp
objRep.Multiline = True
objRep.Pattern = ".*<tr>.*\r\n.*<td>"
newText = objRep.replace(oldText, repText)
objFile.Close
Set objFile = objFSO.CreateTextFile("abc.html")
objFile.WriteLine (newText)
objFile.Close
****************
のVBSを走らせると
****************
<tr><td>2</td>
<tr>
<td>2</td>
<tr>
<td>2</td>
****************
このような結果となってしまいます
正規表現の部分をどうすれば理想のように置換できるでしょうか?


●質問者: takanii
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●200ポイント ベストアンサー

Global プロパティを True に設定すると、期待した動作をします。

Dim repText ' 置換後文字列
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("aa.txt")
oldText = objFile.ReadAll
repText = "<tr><td>"
Set objRep = New RegExp
objRep.Multiline = True
objRep.Pattern = ".*<tr>.*\r\n.*<td>"

objRep.Global = True' ★これを追加する

newText = objRep.replace(oldText, repText)
objFile.Close
Set objFile = objFSO.CreateTextFile("abc.html")
objFile.WriteLine (newText)
objFile.Close


以下、リファレンスの URL です。
http://msdn.microsoft.com/ja-jp/library/cc392451.aspx


takaniiさんのコメント
ありがとうございます!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ