ここでは IEEE Std 1003.1 における BRE(Basic Regular Expressions) について説明する。
sed の正規表現における伝統的な特殊文字は以下の通りである。
'.'
- 任意の一文字。'['
- 文字集合の開始。"[^^]" は '^'
以外のすべて。"[a-z]" は小文字のアルファベット。'-'
, '['
, ']'
, '^'
そのものを集合としたい場合は "[]^\[-]" という順序にする。'\'
- エスケープ。特殊文字のエスケープやグループ "\(", "\|" ,"\)" に用いる。'*'
- 0個以上の繰り返しにマッチ'^'
- 行頭'$'
- 行末
sed の文字集合には以下の文字クラス名が用意されている。ちなみに、右段の等価な文字集合では '\t'
等、GNU sed で可能なエスケープ文字による表記方法を用いており、POSIX sed ではエスケープ文字はサポートされないことに注意。
文字クラス | ISO646で等価な文字集合 |
"[:alnum:]" | "[0-9A-Za-z]" |
"[:alpha:]" | "[A-Za-z]" |
"[:blank:]" | "[\t ]" |
"[:cntrl:]" | "[^[:print:]]" |
"[:digit:]" | "[0-9]" |
"[:graph:]" | "[^ [:cntrl:]]" |
"[:lower:]" | "[a-z]" |
"[:print:]" | "[ !-/0-9:-@A-Z[-`a-z{-~]" |
"[:punct:]" | "[!-/:-@[-`{-~]" |
"[:space:]" | "[\t-\r ]" |
"[:upper:]" | "[A-Z]" |
"[:xdigit:]" | "[0-9A-Fa-f]" |
ちなみに他に "[=ch=]"(照合記号), "[.a.]"(等価クラス)も定義されているが省略する。