MovableType (というかperl) の正規表現が思い通りに作動しなくて、半日くらい悩んだのでメモ。
正規表現で「括弧」や「ハイフン」をエスケープするために「¥」マークを入れたいのだけれど、1個1個手打ちで入力すると正規表現はキチンと動くのに、置換を行い一気に置き換えると動かない。目視で確認する限り、ドコにも間違いは無い・・・・という状況が発生。
まあ、タイトルで既にネタバレなのだけど、
半角「¥」マークは2種類あって、一方はバックスラッシュとして認識されるけど、もう一方はバックスラッシュとして認識されない、というオチでした...orz
当時の様子を疑似的に再現
▲クリックで拡大
こんな感じで、F3キーで検索かけた時に反転しない「¥」マークがあって初めて気が付いた。
アチコチに、ポツポツとバックスラッシュとして認識されない「¥」マークが紛れ込んでいた。
ググってみる
マジか・・・・。やはり半角「¥」マークは2種類あるのか・・・・。
今回の現象を体験するまで、こんな事考えてもみなかった。
っちゅうか、ここ2~3年、同じコトやってるはずなのに正規表現が動いたり動かなかったりしたのはコイツが原因なんじゃないだろうか?
困ったコトはまだある
困ったことに、「正規表現に使えない¥」をキー入力する方法が分からない。
普通に「¥」を入力する時は、正規表現に使える「¥」しか出てこないのだ。今のところ、どういう手順で「¥」マークを入力すると「正規表現に使えない¥」になるのかがサッパリ分からない。
なので、今後もこの問題は私の環境でちょくちょく発生するのだろう。
参考(というかメモ)
私の場合、perl の正規表現を作る時に秀丸の「Ctrl+F」と「Ctrl+R」で正規表現の挙動をざっくり確認、そのコードをIE11にペーストしたり、Google Chromeにペーストしたり、そこからさらに秀丸にペーストしたり、(滅多にないけど) Excelにペーストしてcvs出力して整形したり・・・・なんてコトをよくやるので、そのドコかで「¥」マークが化けているっぽい。
参考(というかメモその2)
「正規表現に使えない¥」に悩むようになったのは、MTOS4 から MTOS5 に移行した直後くらいから。
また、この時期に「IE11で行う作業」「Firefoxで行う作業」「Chromeで行う作業」をいくつか入れ替えている。
この辺が臭いかな・・・・?