正規表現をどのように置き換えてすべて置換するか?一致するものが見つからなくなるまで正規表現を置き換えます。
例えば、4時間後に"(\w{3} \d{1,9})\r?\n\w{2} (\d)"
を"$1$2"
に置き換えると、結果が得られます。
テキスト:
foo 1 ba 1 ba 2 ba 3 ba 4 foo 2 ba 1 ba 2 foo 3 ba 1 ba 2 ba 3
結果:
例コード:
Dim regEx_, stxt
stxt = "foo 1" & VBcr & "ba 1" & VBcr & "ba 2" & VBcr & "ba 3" & VBcr _
& "ba 4" & VBcr & "foo 2" & VBcr & "ba 1" & VBcr & "ba 2" & VBcr _
& "foo 3" & VBcr & "ba 1" & VBcr & "ba 2" & VBcr & "ba 3"
Set regEx_ = New RegExp
With regEx_
.Global = True
.MultiLine = True
.IgnoreCase = True
.Pattern = "(\w{3} \d{1,9})[\r?\n]\w{2} (\d)"
stxt = regEx_.Replace(stxt, "$1$2")
stxt = regEx_.Replace(stxt, "$1$2")
stxt = regEx_.Replace(stxt, "$1$2")
stxt = regEx_.Replace(stxt, "$1$2")
stxt = regEx_.Replace(stxt, "$1$2") 'to make sure (real example some time contains up to 30 replacements)
End With
MsgBox stxt
一致が見つからなくなるまで、私は置き換えることができます方法はありますか?このように:
Do Until regEx_.Test(stxt)
stxt = regEx_.Replace(stxt, "$1$2")
Loop
質問とどのような期待される出力があるとは何ですか? – AKS
'[\ r \ n] + \ w {2} \ s +'正規表現で空文字列に置き換えてみてください。 –
これは近いです。すべてのバを交換する必要はありません。 fooが先行するbaのみ。しかし、ありがとう。私は思っていませんでしたが、結果を期待していませんでした。 – Rahul