\\fの未来は?No.08157
石田 さん 16/08/03 17:11
 
東京板橋区の石田と申します。
 
ある秀丸ユーザさんの個人サイトで「\\fは将来サポートされなくなる
可能性があるので、今からマクロを書き換える準備をしたほうが良い」
という記述を読みました。\\fの代わりになる文はあるのでしょうか?

> replaceallfast "^\\f[^ ○〈][^$]" , " \\1" , regular;

[ ]
RE:08157 \\fの未来は?No.08158
でるもんたいいじま さん 16/08/03 17:19
 
秀丸ユーザの「でるもんた・いいじま」です。

> ある秀丸ユーザさんの個人サイトで「\\fは将来サポートされなくなる
> 可能性があるので、今からマクロを書き換える準備をしたほうが良い」
> という記述を読みました。\\fの代わりになる文はあるのでしょうか?
>> replaceallfast "^\\f[^ ○〈][^$]" , " \\1" , regular;

\f はJRE32.DLLを使っていた時代の名残ですね。

\f が今後どうなるのかは別として(いまだにWindows98のことを考えて
くれているサイトー企画さんのことですから、よほどのことがない限り
将来的にも残すでしょう)、今は一般的な正規表現エンジンと同様に
(...) が使えます。

設定は、メニューバーから その他(O)→動作環境(E) を開いて、
「環境」の枝の「正規表現」という枠囲みのところです。
大昔からの設定を引き継いでいるのでなければ、HMJRE.DLLが指定されて
いるはずです。

[ ]
RE:08158 \\fの未来は?No.08160
秀まるお2 さん 16/08/03 18:20
 
 「\f」は無くなることは無いですが、新しい方式は、ヘルプのキーワード検索


   タグ付き正規表現

 で探すとやり方が出てきます。

[ ]
RE:08160 \\fの未来は?No.08162
石田 さん 16/08/04 16:49
 
有り難うございました。少し安心しました。
 
\\fがJRE32.DLLの名残とは、初めて知りました。
会社のPCでは秀丸マクロが増殖中で、もう90本近くに
なっています。マクロを書き直す…と言っても、
誰が書くのか?という問題と、書き直す手間が半端ないです。
 
\\fでも高速動作します。文庫本三冊ほどのファイルを
高速全置換しても、数秒で終わります(Win7 32bit メモリ4ギガ)

[ ]
RE:08162 \\fの未来は?No.08169
でるもんたいいじま さん 16/08/06 19:38
 
でるもんた・いいじまです。

> \\fがJRE32.DLLの名残とは、初めて知りました。
> 会社のPCでは秀丸マクロが増殖中で、もう90本近くに> なっています。

もしかして、秀丸のことだけが書かれた古〜い本を参照していませんか?
だとすると、最近の一般的な正規表現の動静について何か資料を持っていた
ほうが絶対にいいです。

今回私がご紹介した、(...) で囲んだ内容を\1、\2…で受けるという記法は、
ほぼすべての正規表現エンジンに普遍的なもので、たとえばWord・Excelの
マクロの正規表現もこの方式です。
さらに悪いことに、\fがたとえば\sとか\dとかの仲間として使われるケースも
あります。つまり、JRE32.DLLの\fのほうが、異端中の異端なんです。

だから、石田さんが目にしたサイトの記述も、括弧方式のほうが一般的だ
という前提に立って話を進めているはずです。

#ただし、正規表現を呼び出す側の言語の事情によって、\1、\2…ではなく
#$1、$2…になることはあります。

> マクロを書き直す…と言っても、誰が書くのか?という問題と、

ということは、今は複数の方が古い本を参照しながらマクロを書いている
状態ですか?それは組織運営上、非常にマズいです。

> 書き直す手間が半端ないです。

とりあえず、すべてのマクロを共有ストレージに集めて、秀丸のGREP機能でも
何でもけっこうですから、\fという文字列がどこに入っているのかの一覧を
把握されるのが先決だと思います。

ではでは。

[ ]
RE:08169 \\fの未来は?No.08170
石田 さん 16/08/07 12:32
 
初めまして。
>もしかして、秀丸のことだけが書かれた古〜い本を参照していませんか?
 はい、もう10年以上前に出版された書籍が社内で
「バイブル」になっています。特に2は理系本なのに
心に染みる名著だと思っています。
→1.秀丸エディタハンドブック 翔泳社 発売日:2004年05月20日
→2.正規表現の達人 第2版  ソフトバンク 2005/7/1
 
2では、『角括弧[ ]の両端を\\fで囲む必要はない、先頭に置くだけで良い』
とか、『\dと書くと「いかにも俺はマクロを知ってるぞ」という気分になるが
普通に[0-9]と書いた方が高速動作する』とか……。試してみると何となく、
「高速動作」するようで、お気に入りの本です。
 
>つまり、JRE32.DLLの\fのほうが、異端中の異端なんです。
異端と言われても「高速動作」している現実が有るわけで……。
 
>ということは、今は複数の方が古い本を参照しながらマクロを書いている
>状態ですか?それは組織運営上、非常にマズいです。
 
そう思います。管理職が率先して10年前の本でマクロを書いてます。
けど、平社員の自分が心配する義理もないんじゃないかと。
 
>とりあえず、すべてのマクロを共有ストレージに集めて、秀丸のGREP機能でも
>何でもけっこうですから、\fという文字列がどこに入っているのかの一覧を
>把握されるのが先決だと思います。
 
管理職の逆鱗に触れそうで怖いです。

[ ]