[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: 正規表現 \b の動作



中園です。

> 試しに Perl だと、
> 
> bash-2.05b$ perl -e 'print "$&\n" if "1 _23_ 4" =~ /\b_23_\b/;'
> _23_
> 
> となり、こちらは私の想像どおりの動きです。

家に帰って追試していたら分かりました。Perl でも動きは
同じでした。単に、Perl だと '_' を単語の一部として認識
するというだけでした。

bash-2.05b$ perl -e '"1 _23_ 4" =~ /\b_23_\b/; print "($&)\n";'
(_23_)
bash-2.05b$ perl -e '"1 =23= 4" =~ /\b=23=\b/; print "($&)\n";'
()

今まで正規表現はそれなりに使ってきたつもりだったのですが、
この \b の動作は知りませんでした。ご迷惑をおかけしました。

; やっぱり私の「感覚」はアテにならない・・・

>>>>> In [meadow-users-jp : No.5033]
>>>>> Hiroshi Fujishima <pooh@xxxxxxxxxxxxxxxxxxxx> wrote:
> > ; Gnus で振り分けがうまくいかなかった理由がやっと分かった・・・
> 
> (modify-syntax-entry ?\_ "w" nnmail-split-fancy-syntax-table)
> 
> としたらうまくいきませんか?

ありがとうございます。覚えておきます。
ただしこのときは '_' は関係なくて、振り分けの正規表現に
"\\[mlname\\]\\b" とか書いていて、"[mlname] subject" に
マッチしなかったんだろうと思います。

(string-match "\\[mlname\\]\\b" "[mlname] subject")
nil

--
中園克久 <nakazonok@xxxxxxxxxxxxx>