|
マクロを作成中、ある正規表現での検索式での結果が通常の検索とマクロ中で異なっ
ていたので、どういう理由によるものかお聞かせ願えればと思い質問させていただき
ます。
1〜2桁の半角数字を検索するマクロを作成していました。
このとき、前後に半角英字がある場合は対象外としていました。
「2月」の「2」にはヒットするが「AKB48」の「48」は無視する形です。
このときの検索式は「(?<![0-9A-Za-Z])([0-9]{1,2})(?![0-9A-Za-Z])」としました。
ただ、上記検索式にはミスがあり、「a-z」とすべきところが「a-Z」となっています。
そのためこのマクロを実行すると「AKB48」では当方の意図通りにスルーするのです
が、「akb48」では「48」にヒットしてしまいます。
ここまでは仕様通りの動作なのだと思います。
私もこのミスに気が付いて修正をしました。
ただ今回気になったのが、通常の検索で正規表現を有効にした状態で「(?<![0-9A-Za
-Z])([0-9]{1,2})(?![0-9A-Za-Z])」を入力すると、「akb48」にもヒットしないこと
です。
つまり正規表現で「(?<![0-9A-Za-Z])([0-9]{1,2})(?![0-9A-Za-Z])」を検索すると、
「akb48」には
マクロ:ヒットする
通常の検索:ヒットしない
と、結果が分かれたのです。
今回のマクロ作成では、通常の検索で挙動を確認してからマクロに組み込むことを繰
り返していました。
ですが上述の誤った検索式でヒットしないことを確認してからマクロに組み込んで実
施したら意図せずヒットしたので、少し悩むことになりました。
どのような理由によるものかお聞かせいただければ幸いです。
なお、秀丸エディタのバージョンは8.89、HMJRE.DLLは5.06です。
どうかよろしくお願い致します。
|
|