Re: hidesoft.2:35868 秀丸ファイラーClasNo.06640
でるもんたいいじま さん 17/07/03 13:16
 
こちらの会議室の皆さま、はじめまして。
でるもんた・いいじまと申します。

秀丸の会議室のほうで

> From: "秀丸担当"
> Date: Mon, 03 Jul 2017 09:05:48 +0900
> Subject: hidesoft.2:35868| RE 35867 秀丸ファイラーClassic要望
>
> 秀丸ファイラーClassicのサポート会議室は以下の場所にあり、
> 引き続きご要望やご意見があるようでしたら以下の場所でお願いします。
> http://www.maruo.co.jp/turukame/7/

という誘導がかかっていますので、こちらに移動します。

> 秀丸ファイラーClassicのフィルタはワイルドカードになっていて、
> 確かに正規表現には対応していないです。
> 名前の変更の置換や、検索枠でファイルの内容のテキストは正規表現に
> 対応しているので、フィルタでもできてもいいと思います。
>
> やるとしたらワイルドカードとの両立が問題になると思いますが、
> JavaScriptなどでスラッシュで囲う書き方があって、
> ファイル名にスラッシュは入らないので、
> スラッシュで囲う方法を使ってもいいかもしれません。

スラッシュは少し慎重になったほうがいいと思います。というのも、
スラッシュはディレクトリ名の区切りとしては有効な場合があるからです。
今回問題になっている「特定のフォルダの中でのファイルの絞り込み」なら
「単にスラッシュがあるだけ」を目印にできるのですが、ファイルの検索
機能とか、あるいは複数のフォルダの中のファイルをまとめて表示する
機能があったらその場面とかで、
   //fileserver01/home/staff*/*.jpg
なんていうワイルドカード(正規表現ではなくて)を使いたいという要望が
出るかもしれません。

個人的には、先頭に特定の文字列があったら以後の部分を正規表現とみなす、
という記法が無難だろうと思っています。たとえば、「はてなアンテナ」
http://a.hatena.ne.jp/ では、設定項目の「無視する文字列」などの欄に
   regexp:本日の訪問者は ([0-9,]+) 人です。
のように書くことができて、この先頭の「regexp:」の7文字が正規表現である
ことを示すマークになっています。ファイラーの場合はあまり長いと入力が
面倒なので、「re:」の3文字がちょうどいいのではと思います。この3文字の
並びが先頭に来ることは絶対にないはずです。これを使って、たとえば
   re:\.(gif|png|jpg)$
のように書けます。

ただ、もうひと気になるてんがありまして、秀丸ファイラーClassicって、
大文字・小文字の区別をする・しないの切り替えはできるんでしょうか?
非Windowsなサーバにアップロードして使うファイルだから大文字・小文字の
不整合が分かるようにしたい、という需要はそれなりにありそうです。

それについては専用のチェックボックスがあるから大丈夫だよ、ということなら
それでいいのですが、もし大小文字の区別の有無も正規表現のテキスト中に
記述する場合には、Perl等の /\.(gif|png|jpg)$/i が参考になると思います。

Perl等のデフォルトは「大文字・小文字を区別する」で、御承知のように、
これを「区別しない」にしたい場合には /i をつけます。
(i の文字は「case Insensitive」に由来。)
が、逆にデフォルトが「大文字・小文字を区別しない」の場合に、それを
「区別する」に切り替える一般的な記法は見当たりませんでした。
こちらは「case Sensitive」なので s を使いたいところですが、残念ながら
/s、/S の両方とも、PHPなどでは別の意味に使われています。

これについて個人的には、/^i を提案します。^ は [] の中では「それら
以外」という意味ですので、なじみやすいのではと思います。

で、re: の3文字のあとに /.../ の形で書くことにすれば、最終的に
  (1) re:/\.(gif|png|jpg)$/^i で、拡張子が小文字になっている画像
    ファイルを検出できる。re: の直後に / 以外の文字を置いて、
    re:#\.(gif|png|jpg)$#^i などと書いてもよいことにする。
  (2) re:/\.(JPG|JPg|JpG|Jpg|jPG|jPg|jpG)$/^i のようにすると、
    拡張子が小文字の .jpg になっていないJPEG画像が検出できる。
ということにできそうです。

以上、横槍でした。

[ ]
RE:06640 Re: hidesoft.2:35868 秀丸ファNo.06641
秀丸担当 さん 17/07/03 16:16
 

ご意見ありがとうございます。
正規表現のフィルタをやるとしたら、ワイルドカードと同じような使われ方にな
ると思います。
ファイル名かどうかわからない文字列に対して判定をするのではなく、明らかに
ファイル一覧としての出力があるものに対してのフィルタリングになるので、ス
ラッシュが入ることは無いと思います。
やるとしたら、大文字小文字の区別は無いことになると思います。(意見があれ
ば変わるかもしれませんが)
ただ、スラッシュとするのは末尾が無いとどうとか、/iとか何か意味が付けられ
るのかと思ってしまいそうなので、慎重になったほうがいいかもしれません。

ブックマークのパスでもjs:とかvbs:とかscript:という書き方を採用しているの
で、それに倣うのであればregexp:とかでもいいと思います。(re:だとメールの
返信みたいなのでreg:とか)
ご意見参考にさせていただきます。

[ ]
RE:06641 Re: hidesoft.2:35868 秀丸ファNo.06642
でるもんたいいじま さん 17/07/03 17:27
 
でるもんた・いいじまです。
お返事ありがとうございます。

> 正規表現のフィルタをやるとしたら、ワイルドカードと同じような
> 使われ方になると思います。
> ファイル名かどうかわからない文字列に対して判定をするのではなく、
> 明らかにファイル一覧としての出力があるものに対してのフィルタ
> リングになるので、スラッシュが入ることは無いと思います。
> やるとしたら、大文字小文字の区別は無いことになると思います。
> (意見があれば変わるかもしれませんが)

了解いたしました。

> ブックマークのパスでもjs:とかvbs:とかscript:という書き方を採用
> しているので、それに倣うのであればregexp:とかでもいいと思います。
> (re:だとメールの返信みたいなのでreg:とか)

うーむ、reg: だと今度はレジストリと紛らわしい気がします。
英語で「Regular Expression」を短縮する場合は re、regex、regexp の
3つが定番だと思います。で、プレフィクス6文字の先例は既にある(script:)
とのことですから、正規表現は regexp: または regex: が無難だと思います。

[ ]
RE:06642 Re: hidesoft.2:35868 秀丸ファNo.06643
秀丸担当 さん 17/07/04 17:33
 

ご意見ありがとうございます。
まだできているわけではないですが、reg:もまぎらわしいということで、もしや
るとしたら、regexp:かregex:にしようと思います。

[ ]