[▲前のスレッド]

[10016] 振り分け条件での正規表現のバグ? 
2002/2/21 (木) 11:20:44 ひこふ
dhcp-2317.nava21.ne.jp / Mozilla/4.0 (compatible; MSIE 5.01; Windows 98)
From欄が正規表現で以下の条件の時に振り分けるフォルダを
作成したとします。

weeklymag2[be]?@mag2\.com

この条件は、

"weeklymag2b@mag2.com"
"weeklymag2e@mag2.com"
"weeklymag2@mag2.com"

の3種類の文字列が該当するはずです。しかし、

"weeklymag2l@mag2.com"

もこの条件にひっかかって振り分けられてしまいます。
これは不具合ではないかと思うのですがいかがでしょうか。

[10032] Re:振り分け条件での正規表現のバグ? 
2002/2/22 (金) 08:00:17 noris
sf.7-dj.com / INCM1.21p

▼ ひこふ さん
> From欄が正規表現で以下の条件の時に振り分けるフォルダを
> 作成したとします。
>
> weeklymag2[be]?@mag2\.com
> (〜〜中略〜〜)
> "weeklymag2l@mag2.com"
>
> もこの条件にひっかかって振り分けられてしまいます。


再現しました……が……これはどうなんでしょう?

どうやら、? があると、その前にある全ての部分に対して「該当表現または
空文字列」として働いてしまうような感じです。
ですので、weeklymag2[be]?@mag2\.com だと、単純に @mag2.com ドメイン
全てにヒットしてしまうような。

Becky!2 の正規表現では、優先順位を付けるための () 囲みが許されていま
すから、この場合はとりあえず
weeklymag2([be]?)@mag2\.com
とやると、狙い通りにヒットしてくれるようです。

んで、これは不具合なのかどうか、ということになると、ちょっと微妙です
ねぇ。() 囲みが用意されているのだから、これはこれで仕様として正しい
と解釈するべきなんでしょうか?
私の使っているソフトでは、正規表現の () 囲み自体、用意されているもの
が他にありませんので、ちょっと判断がつきかねます (^^ゞ

[10033] Re2:振り分け条件での正規表現のバグ? 
2002/2/22 (金) 09:50:14 ひこふ
dhcp-2317.nava21.ne.jp / Mozilla/4.0 (compatible; MSIE 5.01; Windows 98)
▼ norisさん
> どうやら、? があると、その前にある全ての部分に対して「該当表現または
> 空文字列」として働いてしまうような感じです。
> ですので、weeklymag2[be]?@mag2\.com だと、単純に @mag2.com ドメイン
> 全てにヒットしてしまうような。
>
> Becky!2 の正規表現では、優先順位を付けるための () 囲みが許されていま
> すから、この場合はとりあえず
> weeklymag2([be]?)@mag2\.com
> とやると、狙い通りにヒットしてくれるようです。
>
> んで、これは不具合なのかどうか、ということになると、ちょっと微妙です
> ねぇ。() 囲みが用意されているのだから、これはこれで仕様として正しい
> と解釈するべきなんでしょうか?
> 私の使っているソフトでは、正規表現の () 囲み自体、用意されているもの
> が他にありませんので、ちょっと判断がつきかねます (^^ゞ


なるほど、そういう動作なのですね。私は主に秀丸で正規表現を
使用していますが、秀丸の正規表現において"?","*","+"
;は
それの作用する「直前のパターン」として、直前の「1文字」が
選ばれるようです。Becky!2では直前の「全文字列」、という
ことになるのでしょうか。

秀丸以外のソフトで正規表現を使用する機会があまりないので、
Becky!2の使用が不具合と言えるかどうかは私も分かりません。

ただ、"()"は、"(AAA|BBB)"等の使い方しかしたことがなかった
のですが、norisさんのような用法もあり、それでとりあえず
私の目的する動作はできそうですので、参考にさせていただき
ます。

慣れた使い方しかしていないと、少し違う動作に出会うと
とまどいますね。

#正規表現の正確な仕様というのはどこかに規定されて
#いたりするのでしょうか。

[10034] Re3:振り分け条件での正規表現のバグ? 
2002/2/22 (金) 13:17:30 noris
sf.7-dj.com / INCM1.21p

もうちょっと詳しい検証をしてみたところ、どうやら + や * では、
原則的には「直前の1表現(1文字)」に掛かるようです。
例えば abc+@co\.jp では
        abc@co.jp
        abcc@co.jp
        abccc@co.jp
など、c のみの繰り返しのパターンにだけマッチします。

例外的に (abc)+@co\.jp とやれば、abc で1表現扱いになりますので
        abc@co.jp
        abcabc@co.jp
        abcabcabc@co.jp
などにマッチすることになるようです。
# こちらの方が(他のソフトとの互換性を考えても)分かりやすいですね……。


正規表現というもの自体に統一規格があるわけでもないでしょうし、
ソフトによって実装のされ方に差異があったとしても、
どれが正しくてどれが間違っているということではないのでしょうけど、
Becky!2 の内部で ? と + * とで扱いが異なっているとなると、
さすがに意図された仕様とは考えにくい……ように思います。
もし不具合でしたら修正等お願いいたします > 乗松様

[▼次のスレッド]
INCM/CMT
Cyclamen v3.84