[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[2]: Fw: 質問 ;Elispの正規表現



渡辺@湘南工科大です。

On Fri, 21 Jul 2000 23:56:56 +0900, Noritsugu Nakamura wrote:
> まだ Elisper じゃない 中村 のりつぐ です。
期待してますよ〜。

問題は [] のなかで使えるかということなのです。
特に "何々以外"を示したいので、[^   ]を使いたいのです。

ちなみに、
> /usr/share/emacs/19.34/lisp/mule-init.el
> ;; 93.7.14 by K.Handa
> (define-word-regexp japanese-word-regexp
>   "\\cA+\\cH*\\|\\cK+\\cH*\\|\\cC+\\cH*\\|\\cH+\\|\\ck+\\|\\sw+")

これは 「日本語の単語」を定義する正規表現だと思います。
Emacs20.* だと単語の取り扱い方が変わっていますが、
この正規表現に使われているのは、
 \cA ; カテゴリーが2バイトの英数字
 \cH ; カテゴリーが2バイトのひらがな
 \cK ; カテゴリーが2バイトのカタカナ
 \cC ; カテゴリーが2バイトのChinese (Han) 漢字のことかな?
 \ck ; カテゴリーがカタカナ
 \sw ; シンタックスが語を構成する文字

 \|  ; 又は (or) を示す
 +   ; 先行する正規表現が1回以上出現せねばならない
 *   ; 先行する正規表現が0回以上出現。つまりあってもなくても良い。
なので、

最初の \cA+\cH*、\cK+\cH*、\cC+\cH*、\cH+ は、2バイトの英数字かカタカ
ナか Chinese とか、 それらの文字の後ろにひらがながついた文字列とか、
ひらがなだけ を表していて、 
次の \ck+、\sw+ は、カタカナか、英語であれ日本語であれ単語を構成する
と Emacsのどこかで定義されている文字 を表していて、
ようするに、そういった文字が日本語で言うところの単語(というより文節)
なのだよ、と言っているのだと思います。終わりにひらがながつくところが
みそですね。 

# 私の解釈あってますよね?

日曜日に、必要なものを書き込んだCD-Rをお渡ししましょうか。
小田急線藤沢駅の改札は1階なので、降りた方向にまっすぐ歩いて改札を出て
から、 2階に上がってください。

# 大学は夕方で冷房が切れてしまうので暑い。汗もができて困る。