|
こちらの会議室の皆さま、はじめまして。
でるもんた・いいじまと申します。
秀丸の会議室のほうで
> 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画像が検出できる。
ということにできそうです。
以上、横槍でした。
|
|