[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: 正規表現 \b の動作
- X-ml-count: 5037
- Subject: Re: 正規表現 \b の動作
- From: 小関 吉則 (KOSEKI Yoshinori) <kose@xxxxxxxxxxx>
- Date: Wed, 14 Jan 2004 10:02:00 +0900
- User-agent: Gnus/5.110002 (No Gnus v0.2) Emacs/21.3.50 (usg-unix-v) Mule/5.0 (賢木)
>>>>> In [meadow-users-jp : No.5035]
>>>>> NAKAZONO Katsuhisa <nakazonok@xxxxxxxxxxxxx> wrote:
> > 試しに Perl だと、
> >
> > bash-2.05b$ perl -e 'print "$&\n" if "1 _23_ 4" =~ /\b_23_\b/;'
> > _23_
> >
> > となり、こちらは私の想像どおりの動きです。
> 家に帰って追試していたら分かりました。Perl でも動きは
> 同じでした。単に、Perl だと '_' を単語の一部として認識
> するというだけでした。
info の elisp-ja[1] の 「構文テーブル(syntax table)」を参照くだ
さい。
*scratch* バッファ上で、
(string-match "\\b_23_\\b" "1 _23_ 4")
nil
ですが、
(modify-syntax-entry ?\_ "w" emacs-lisp-mode-syntax-table)
を評価した後なら、
(string-match "\\b_23_\\b" "1 _23_ 4")
2
となります。_ を"単語構成文字"(`w'で指定)と設定した結果とい
うことです。
>>>>> In [meadow-users-jp : No.5033]
>>>>> Hiroshi Fujishima <pooh@xxxxxxxxxxxxxxxxxxxx> wrote:
> > ; Gnus で振り分けがうまくいかなかった理由がやっと分かった・・・
> (modify-syntax-entry ?\_ "w" nnmail-split-fancy-syntax-table)
> としたらうまくいきませんか?
nnml-split で使われる構文テーブルによって正規表現でマッチす
る単語も変わります。ということ。
Gnusのメール振り分けならここも参考になるかも。
http://cgi.netlaputa.ne.jp/~kose/diary/?200304a&to=200304091#200304091
Footnotes:
[1] gnujdoc-20040106-2-pkg.tar.gz には elisp-ja が含まれて
いませんでした。gnujdoc-20040106-3-pkg.tar.gz には入れ
ました。
--
こせき // サポートページ
http://www.NetLaputa.ne.jp/~kose/MeadowBook/