-
文字クラス
[abc]
- [] 内に存在するいずれかの1文字にマッチ。左例では a,b,c のいずれかの1文字にマッチ。
「文字クラス」と呼ばれる構文です。
+
や ++
などの繰り返し表現と併用してよく使われます。
文字クラスは特別な文法を使うことができます。
文字クラス上の特別な文法
[^abc]
- [] 内に存在しないいずれかの1文字にマッチ。例示では a,b,c のいずれでもない1文字にマッチ。
[a-z]
- a~z の範囲内の1文字にマッチ。順序はASCIIコードの16進数表記の昇順に準拠する。
[#10:20]
- 10~20 の数値にマッチ。負の数,アスタリスク(無限大)も指定できる。
数の大小に制限があり、「左辺 < 右辺」でなければならない。(※)
[%20]
- ASCIIコードの 0x20 の文字にマッチ
※文字クラスは1文字にマッチが基本ですが、[#10:20]
に限っては、2文字以上(2桁以上の数字)をサポートします。
いくつかのメタキャラクタは文字クラス化すると、メタキャラクタの機能を失います。
(基本的に、2文字以上の意味を持つ or 文字の意味をなさないメタキャラクタは機能を失います。)
メタキャラクタの機能を維持する文字
[\t]
- タブ(HT) の1文字として扱う
[\n]
- 改行コード(LF) の1文字として扱う
[\r]
- 復帰コード(CR) の1文字として扱う
[\]
- メタキャラクタの開始文字,エスケープ文字 として扱う。
(例示の表記はエスケープとしてもメタキャラクタとしても機能しないため、不正な記述です。)
メタキャラクタの機能を失う文字
[
]
- 半角スペースの1文字として扱う
[\s]
- "s" の1文字として扱う。[s] と同義。
[\w]
- "w" の1文字として扱う。[w] と同義。
[*]
- アスタリスク(*)の1文字として扱う
[?]
- 疑問符(?) の1文字として扱う
[']
- シングルクオート(') の1文字として扱う
["]
- ダブルクオート(") の1文字として扱う
[|]
- 縦線(|) の1文字として扱う
[(]
- 左小括弧 "(" の1文字として扱う
[)]
- 右小括弧 ")" の1文字として扱う
[[]
- 左大括弧([) の1文字として扱う
[&]
- アンパサンド(&) の1文字として扱う
[=]
- 等号(=) の1文字として扱う
[+]
- プラス(+) の1文字として扱う
[-]
- マイナス(-) の1文字として扱う。
マイナス(-) は最終文字の場合に限り、エスケープしなくてもよい。
[%]
- パーセント(%) の1文字として扱う。
パーセント(%)は後ろに16進数表記の2文字が存在しない場合に限り、エスケープしなくてもよい。
[a^]
- キャレット(^), 又は, "a" の1文字として扱う。
キャレット(^)は先頭に存在しない場合に限り、エスケープしなくてもよい。
[$]
- ドルマーク($) の1文字として扱う。文字クラス上ではマッチングコマンドを扱えない。
[\0]
- "0" の1文字として扱う。[0] と同義。文字クラス上では変数を扱えない。
文字クラスにおいても、いくつかの文字はエスケープしなければなりません。
エスケープしなければならない文字
[\\]
- 円記号(\) の1文字として扱う。[\] を指定すると、不正な記述とProxomitronに怒られる。
[\]]
- 右大括弧(]) の1文字として扱う
[\^]
- キャレット(^) の1文字として扱う。
キャレット(^)は先頭にある場合に限り、エスケープしなければならない。
[\-a]
- マイナス(-), 又は, "a" の1文字として扱う。
マイナス(-)は最終文字でない場合に限り、エスケープしなければならない。
[\%20]
- パーセント(%), 又は, "2", "0" の1文字として扱う。
パーセント(%)は後ろに16進数表記の2文字が存在する場合に限り、エスケープしなければならない。