\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の区切りは、別々の正規表現が書かれてるとみなして判断しているので、都
合が悪い場合があると思います。
別のケースで、検索ダイアログの右下に注意書きが出ることがあります。例えば「te
st[^x]」と入力すると、「検索文字列末尾の[^...]は改行も含みます。」という注意
書きが出ます。\bや\wなどもあります。
こういった感じで注意書きを出すのではどうでしょうか。

[ ]
RE:09812 \fの使用時に警告を出せませんかNo.09813
colder さん 18/11/05 17:45
 
>別のケースで、検索ダイアログの右下に注意書きが出ることがあります。例えば「t
>est[^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にした人が分かるようになるというだけで、そのあたりは問題無いことにな
ると思います。

[ ]