ご利用前に必ずお読みください
> ご報告ありがとうございます。 > > いただいた条件で現象を再現することができました。 > > 調査しましたところ、これは前回「(?>__test__) の件」で逆方向検索の仕様を変更したことによる副作用ということがわかりました。 > > 逆方向検索を繰り返す場合、再検索の開始位置をマッチした文字列の "左端" を基準にするか、"右端" を基準にするかの違いです。 > > 従来は逆方向検索でマッチした文字列の "左端" を基準に再検索しており、取りこぼしが発生していたため、「(?>__test__) の件」で修正した際にマッチした文字列の "右端" を基準にするよう、仕様変更しました。 > > そのため、正規表現「^\p{Blank}+」で逆方向検索した場合、マッチした文字列の "右端" を基準に再検索をかけるので、マッチした文字列の右端が行頭「^」にマッチしなくなるまで、その行がヒットし続けるというわけです。 > > 以下はちょっとした実験ですが、長いのでスルーでもかまいません ^^; > > 前回、ご紹介したブログ記事の内容と近いものですが、エディターの状況も変わっていることですし、本件はときどきご質問をいただくこともあるので再調査してみました。 > > 例えば、 > > という A が 11 個のテキストを用意します。A の数を 3 で割り切れない数にしておくのがポイントです。 > > そして「AAA」や正規表現の「...」など、3 文字の文字列で前後に検索してみると、本件についての挙動が分かりやすいと思います。 > > これをもとにいくつかのエディターで実験してみました。 > > 結果です。 > > 順方向、逆方向の検索を繰り返すときに "マッチした文字列" の「左端 (開始位置)」を基準に再検索するか、「右端 (終了位置)」を基準に再検索するかにご注目ください。 > > もちろん、順方向の検索でマッチした文字列の「左端」をそのまま基準にして再検索すると同じ位置がヒットしてしまうので、順方向の場合の「左端」は「左端 +1」から再検索という意味です。(逆方向の右端の場合も同様) > > -------------------------------- > ① 順方向は左端、逆方向は右端、検索文字列の強調表示は左端 > ・Mery 3.2.8 > ・秀○エディタさん 8.97 (正規表現オフの場合) > -------------------------------- > 検索における取りこぼしはありません。検索結果と検索文字列の強調表示は一致します。 > > -------------------------------- > ② 順方向は左端、逆方向は右端、検索文字列の強調表示は右端 > ・Visual Studio 2019 > ・E○Editor さん 20.9.2 > ・秀○エディタさん 8.97 (正規表現オンの場合) > -------------------------------- > 検索における取りこぼしはありませんが、検索文字列の強調表示は最後の「AA」を取りこぼすので、検索結果と検索文字列の強調表示が一致しません。 > > Visual Studio 2019 は検索方向を切り替えた一発目だけ③方式になるという謎仕様。 > > また、秀○エディタさんは正規表現のオフ・オンによって①方式と②方式に挙動が変わるようです。 > > -------------------------------- > ③ 順方向は右端、逆方向は左端、検索文字列の強調表示は右端 > ・Visual Studio Code 1.58.2 > ・Sublime Text 3.2.2 > ・サク○エディタさん 2.4.1.2849 > -------------------------------- > 検索、検索文字列の強調表示ともに最後の「AA」を取りこぼしますが、検索結果と検索文字列の強調表示は一致します。 > > 最後の「AA」は順方向でも逆方向でもどうがんばってもヒットしません。 > > しかしながら、これがご希望の仕様なのかもしれません。 > > -------------------------------- > ④ 順方向も逆方向も右端 > ・メモ帳 > ・Notepad++ 8.1.2 > -------------------------------- > 順方向では最後の「AA」を取りこぼしますが、逆方向では最後の「AA」にヒットします。 > > 以上です。 > > というわけで、今回の正規表現「^\p{Blank}+」で検索して、行きと帰りでヒットする回数が一致するのは③方式のエディターとなります。 > > 行きと帰りでヒットする回数が一致しないのは、①、②方式で、Visual Studio 2019、E○Editor さんは Mery と同じ挙動でした。 > > 秀〇エディタさんで正規表現を使うと通常は②方式なのですが、なぜか「^」を使った場合は③方式のように振舞います。例外対応のような処理が組み込まれているのかもしれません。 > > どの方式が正解ということはないと思いますが、現在の Mery の仕様としまして、順方向の検索はマッチした文字列の左端を基準に再検索。逆方向の検索はマッチした文字列の右端を基準に再検索、ということで取りこぼしを最小限に抑えつつ、順方向と逆方向で検索開始位置の基準となる条件を合わせて一貫性をもたせています。 > > > とのことなので「こういう振る舞いは、やむ無しなのかなぁ~」と個人的には納得してます。 > > 結果的にはそうですね ^^; > > ③方式を採用したとしてもこれはこれで取りこぼしが発生するため、①、②方式へのご要望が来そうですし、間を取った④方式は一貫性がなくて分かりづらいですし。 > > うーん、難しいです。
マークダウンを有効にする
テキストエディター「Mery」ベータ版 v3.8.8 を公開
ヨーグルトメーカーで作った R-1 ヨーグルトで強さを引き出してみた
テキストエディター「Mery」ベータ版 Ver 2.6.9 を公開、自動保存機能、バックアップ機能を搭載
テキストエディター「Mery」の配色テーマ集
日曜日は電子工作!「はじめてつくるパワーアンプ」を読んでみた
リズム天国 ミラクルスターズ -Switch
トモダチコレクション わくわく生活 -Switch
リズム天国 ミラクルスターズ|オンラインコード版
ニンテンドープリペイド番号 9000円|オンラインコード版
ニンテンドープリペイド番号 5000円|オンラインコード版
負けヒロインが多すぎる! 9 (ガガガ文庫)
オルクセン王国史~野蛮なオークの国は、如何にして平和なエルフの国を焼き…
転生しました、サラナ・キンジェです。ごきげんよう。 5 ~婚約破棄された…
崩壊世界の魔法杖職人4【電子特典付き】
フルメタル・パニック! Family4 (富士見ファンタジア文庫)