以下に挙げる演算子はGNUで定義されているもので(POSIXでは
定義されていない)、Regexをemacs
というシンボルを定義して
コンパイルしたときにだけ使うことができる。
このセクションにある演算子はRegexにキャラクタのsyntactic classesを 要求する。Regexはそれを決定するのにシンタクステーブルを使用する。
シンタクステーブルはあなたの使うキャラクタセット中のキャラクタによって 添字付けされる配列である。したがって、ASCIIコードを使っているのなら シンタクステーブルは256の要素を持つことになる。
Regexをemacs
というプリプロセッサシンボルを定義してコンパイルした場合、
Regexはre_syntax_table
という変数をEmacsシンタクステーブルのために
定義し、かつ初期化されていることを期待する。
EmacsのシンタクステーブルはRegexのそれ(セクション Non-Emacs Syntax Tablesを参照)
に比べて複雑である。Emacsのシンタクステーブルについての詳細は
See section `Syntax' in The GNU Emacs User's Manual.
\s
class)この演算子は特定のキャラクタで表現されるsyntactic classに属する 任意のキャラクタにマッチする。`\sclass'がこの演算子を 表し、ここでclassが指定したいsyntactic classを表す キャラクタである。たとえば、`w'が語の構成要素になるキャラクタの syntactic classを表すとすると、`\sw'は語の構成要素のキャラクタに マッチする。
\S
class)この演算子はmatch-syntactic-classに似ているが、違うのは これが特定のキャラクタが表すsyntactic classに属さない任意の キャラクタにマッチするということである。 `\Sclass'がこの演算子を表す。たとえば、`w'が word-constituentキャラクタのsyntactic classを表しているとすると、 `\Sw'はword-constituentでない任意のキャラクタにマッチする。