Tetsuo Handa
from-****@I-lov*****
2009年 9月 11日 (金) 01:47:50 JST
熊猫です。 突然ですが http://sourceforge.jp/projects/tomoyo/lists/archive/users-en/2009-August/000088.html で リクエストされていた再帰指定の方法を思いついたので実装してみました。 ( revision 3012 ) /\{dir\}/ という指定を行うと dir の1回以上の繰り返し(例: /dir/ /dir/dir/ /dir/dir/dir/ /dir/dir/dir/dir/ )に一致します。 \{ 演算子は /\{ というシーケンスでのみ指定できます。 \} 演算子は \}/ というシーケンスでのみ指定できます。 \{ と \} の間に / を含めることはできません。 幾つか例を示します。 /home/vladap/software/firefox/firefox/\{\*\}/\*.dat /var/www/html/\{\*\-.\*\}/\*.html /var/www/html/\{\*\-.\*\}/public/\*.html /home/kumaneko/SVN/\{\*\-.svn\}/\* /home/kumaneko/SVN/\{\*\}/\$\*/\{\*\}/.svn/entries キーポイントは、 \{ と \} で囲まれたパターンは、パス名の最後の / 以降と 一致することが無いという点です。ユーザは明示的にパス名の最後の / 以降を 指定することが必要です。これは、 /var/www/html/\{\*\} ( /var/www/html/ 以下の 全ファイル)のような、緩すぎる一致をさせないための仕様です。 \{ と \} は /\{ と \}/ という形でのみ使用できるため、 TOMOYO のパス名減算 演算子である \- との競合も回避できています。 利用可能なスタックメモリが少ないカーネル空間で完全な正規表現を実装するのは 無理でしょうし、繰り返し回数まで指定できるようにする必要も無いと思うのですが、 どうでしょう?