[ 新規に投稿する ]

\fの使用時に警告を出せませんかNo.09811
colder さん 18/11/05 14:27 [ コメントを投稿する ]
  秀丸では\fによるタグ付き正規表現が可能なのですが、現状では()によるタグ付き正規表現のほうが使いやすいだけでなく、
\fを使った場合、正しい部分文字列を取り出せないパターンもあり、\fを使う必要性は全くありません。
そこでトラブル対策の設定に\fの使用時に警告を出すようにする設定が欲しいです。

\fを使った場合、部分文字列を正しく取り出せない例
検索文字列:\fa+\f([ab]b)+
テキストの内容:aaabbb
上記のパターンで\2がbbbになる
()による正規表現(a+)(([ab]b)+)では正しく\2がabbbになる
[ ]
RE:09811 \fの使用時に警告を出せませんかNo.09812
秀丸担当 さん 18/11/05 16:07 [ コメントを投稿する ]
 
確かに\fの区切りは、別々の正規表現が書かれてるとみなして判断しているので、都合が悪い場合があると思います。
別のケースで、検索ダイアログの右下に注意書きが出ることがあります。例えば「test[^x]」と入力すると、「検索文字列末尾の[^...]は改行も含みます。」という注意書きが出ます。\bや\wなどもあります。
こういった感じで注意書きを出すのではどうでしょうか。
[ ]
RE:09812 \fの使用時に警告を出せませんかNo.09813
colder さん 18/11/05 17:45 [ コメントを投稿する ]
  >別のケースで、検索ダイアログの右下に注意書きが出ることがあります。例えば「test[^x]」と入力すると、「検索文字列末尾の[^...]は改行も含みます。」という注意書きが出ます。\bや\wなどもあります。
>こういった感じで注意書きを出すのではどうでしょうか。

ダイアログを表示している場合はそれで問題ないと思いますが、
マクロ内に書かれている場合はダイアログが出ないです。
マクロの場合、マクロ作成者と実行者が異なることも多く、
このような問題が起こった時、警告が出ないと間違いの発見が遅れます。
[ ]
RE:09813 \fの使用時に警告を出せませんかNo.09814
秀丸担当 さん 18/11/05 17:55 [ コメントを投稿する ]
 
マクロでもわかったほうがいいということで、そういうこともできたらいいと思います。
V8.85はできたら正式にしたいと考えていて、V8.87以降になるかもしれないですが、今後のバージョンで検討したいと思います。
[ ]
RE:09814 \fの使用時に警告を出せませんかNo.09815
石田 さん 18/11/05 22:03 [ コメントを投稿する ]
  「 \f はマクロ文の中では使って良いが、普通の検索・置換では使わない方が良い」という
話は6年程前、某巨大掲示板で聞いた覚えがあります。「マクロなら良い」で、今も
会社PC では動作しています。秀丸 正規表現専門書ではありませんが、ソフトバンク・
パブリッシングが2005 年に出した「正規表現の達人 第二版」(検索したら今も販売中)
では秀丸の \f について解説されています。以下抜粋します(272〜273ページ)。
----------抜粋はじめ---------
また、「タグ付き正規表現による置換」という後方参照と同様の機能もサポートされており、
「\0」「\1」「\2」…で参照できますが、後方参照される文字列は「( )」ではなく「\f」で区切って
指定します。つまり「( )」が持っている機能はあくまで正規表現のグループ化を指定するためだけの
ものです。「\f」で文字列を区切る際、検索文字列の先頭と末尾に「\f」を指定する必要はありません。
たとえば、[0-9]\t[0-9]という正規表現の[0-9]の部分を参照したい場合は
\f[0-9]\f\t\f[0-9]\f ではなく、[0-9]\f\t\f[0-9]とすればよいことになります。
この場合、「\0」「\1」…の参照箇所は以下のようになります。
[0-9]\f\t[0-9]
 \0− −\1− −\2−
 その他、「\f」のタグ付けの詳細は秀丸ヘルプの詳細を参照して下さい。
----------抜粋おわり---------
素人の自分には、この解説文の適否を判断できませんが、今、大型書店でも正規表現の解説書は
古い物が多く、かつ種類も少なく上記の本はまだ新しい本だと思います。案外、今も「バイブル本」と
して参照している人は多いのではないでしょうか。

マクロライブラリにも \\f を使ったマクロが収録されており、先人の作ったマクロ文から自分なりに
勉強させてもらいました。今後 \\f に何らかの変化があったとしても、全く動作しないのは
避けて欲しいです。システム課に言っても「お前たちで作ったんだから、お前たちで直せ」でお仕舞いです。
[ ]
RE:09815 \fの使用時に警告を出せませんかNo.09816
秀丸担当 さん 18/11/06 11:02 [ コメントを投稿する ]
 
もし設定を追加するとして、バージョンアップしたら突然警告が出るようになるわけにはいかないので、デフォルトではOFFにすると思います。
任意でONにした人が分かるようになるというだけで、そのあたりは問題無いことになると思います。
[ ]

[ 新規に投稿する ]