拡張正規表現

[sed basics - ストリームエディタの基礎] [sed における基本正規表現]
[2014/03/01新規] [2014/05/27更新]

ここでは IEEE Std 1003.1 における ERE(Extended Regular Expressions) について説明する。


Contents

特殊文字

sed の正規表現における現代的な特殊文字は以下の通りである。

これらに伝統的な特殊文字が加わるが、グループはエスケープ不要となることに注意すること。

文字クラス

sed の文字集合には以下の文字クラス名が用意されている。ちなみに、右段の等価な文字集合では '\t' 等、GNU sed で可能なエスケープ文字による表記方法を用いており、POSIX sed ではエスケープ文字はサポートされないことに注意。

文字クラスISO646で等価な文字集合備考
"[:alnum:]""[0-9A-Za-z]"
"[:alpha:]""[A-Za-z]"
"[:blank:]""[\t ]""C" ロカールではこれら「タブ」と「空白」のみ。
"[:cntrl:]""[^[:print:]]"
"[:digit:]""[0-9]"
"[:graph:]""[^ [:cntrl:]]"ここで、文字 '\' が含まれない nawk 等の実装もあるので注意。
"[:lower:]""[a-z]"
"[:print:]""[ !-/0-9:-@A-Z[-`a-z{-~]"ここで '/''\/' と書くべき nawk 等での書式もあるので注意。また、文字 '\' が含まれない nawk 等の実装もあるので注意。
"[:punct:]""[!-/:-@[-`{-~]"ここで '/''\/' と書くべき nawk 等での書式もあるので注意。また、文字 '\' が含まれない nawk 等の実装もあるので注意。
"[:space:]""[\t-\r ]"
"[:upper:]""[A-Z]"
"[:xdigit:]""[0-9A-Fa-f]"

ちなみに他に "[=ch=]"(照合記号), "[.a.]"(等価クラス)が定義されているが、それらが実装されているかは処理系による。


参考文献

  1. Extended Regular Expressions, IEEE Std 1003.1-2004.
Written by Taiji Yamada <taiji@aihara.co.jp>