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

正規表現 \b の動作



中園と申します。

Elisp などロクに書いたことはないのですが、触っていたら
次のことに気付きました。以下は string-match を評価した
結果です。

(string-match "\\b23\\b" "1 23 4")
2
(string-match "\\b_23_\\b" "1 _23_ 4")
nil

私的には後者も 2 が返ってくるものだと思っていました。
試しに Perl だと、

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

となり、こちらは私の想像どおりの動きです。

どちらの動きが相応しいかはさて置き、これってもしかして
Emacs では有名な仕様なのでしょうか? 

少し実験した感じでは、'_' でなくても区切り境界として認識
される文字であれば同様の結果になるような気がします。

; Gnus で振り分けがうまくいかなかった理由がやっと分かった・・・
--
中園克久 <nakazonok@xxxxxxxxxxxxx>