正規表現での改行文字の罠
Windows OSでのテキストファイルの改行文字は\r\nです。
一方、正規表現の改行文字は\nです。
なので、正規表現でテキストファイルを見ると、行末に\rがあります。
つまり、.*には、末尾に\rが付きます。
このようなトラブルを回避するには、先に\rを除去しておくとよいでしょう。
あるいは、.の代わりに[^\r\n]を使うとよいでしょう。
set re=new regexp
re.multiline=true
re.pattern=".+$"
set matches=re.execute("a" & vbcrlf & "b")
msgbox escape(matches(0).value),,"NG"
re.pattern="[^\r\n]+$"
set matches=re.execute("a" & vbcrlf & "b")
msgbox escape(matches(0).value),,"OK"
※
以前は、$は\nの直前にしかマッチせず、
| 行末hogeはhoge$に掛かりません。
| $の代わりに\r?$を使うとよいでしょう。
でしたが、\rの直前にもマッチするよう修正されたようです。
« ひとつのショートカットで複数のアプリを起動するには? | トップページ | バッチファイルで、文字化けファイル名を補正する。 »