自分用覚え書き @Wiki
正規表現について
最終更新:
oboegaki1002
正規表現(せいきひょうげん、regular expression)とは、文字列の集合を一つの文字列で表現する方法の一つである。正則表現(せいそくひょうげん)とも呼ばれ、形式言語理論の分野では比較的こちらの訳語の方が使われる。まれに正規式と呼ばれることもある。
(Wikipedia: http://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE)
| メタ文字 | 説明 |
|---|---|
| . | 任意の 1 文字に一致します。 |
| [ ] | 文字クラスを示します。角かっこ内のいずれかの文字に一致します。たとえば、[abc]
と指定した場合、"a"、"b"、および "c" のいずれかに一致します。 |
| ^ |
文字クラスの先頭にこのメタ文字がある場合は、後に続く文字クラスが否定されます。このように指定した文字クラスは、角かっこ内の文字以外の任意の文字に一致します。たとえば、[^abc]
と指定した場合、"a"、"b"、および "c" 以外のすべての文字と一致します。
正規表現の先頭にある |
| - | 文字クラスの中で使用され、文字の範囲を示します。たとえば、[0-9] と指定した場合、"0" から
"9" までの任意の数字に一致します。 |
| ? | 直前の正規表現に一致する文字があるかないかわからない場合に使用します。つまり、その正規表現が 0回または 1
回出現するものと一致します。たとえば、[0-9][0-9]? と指定した場合、"2" と "12"
のいずれにも一致します。 |
| + | 直前の正規表現の 1 回以上の繰り返しに一致します。たとえば、[0-9]+
と指定した場合、"1"、"13"、"666" のいずれにも一致します。 |
| * | 直前の正規表現の 0 回以上の繰り返しに一致します。 |
| ??, +?, *? | *
の最短一致。可能な限り広範囲に一致する最長一致とは異なり、最小範囲に一致します。たとえば、"<abc><def>"という文字列がある場合、<.*>
と指定すると "<abc><def>" に一致します。 |
| ( ) | グループ化演算子。たとえば、(\d+,)*\d+ と指定した場合、コンマで区切られた数字のリスト
("1"、"1,23,456" など) に一致します。 |
| { } | 一致グループを示します。中かっこ内の正規表現に一致する実際のテキストを入力文字列から取得できます。 |
| \ | エスケープ文字。次に続く文字が、特殊文字としてではなく通常の文字として解釈されます。たとえば、\a
は任意の英数字を示します。次の表を参照してください。
|
| $ | 正規表現の末尾にある [0-9]$
と指定した場合、入力文字列の末尾にある数字に一致します。 |
| | | 選択演算子。この演算子で区切られた 2 つの正規表現のいずれかに一致します。たとえば、T|the
と指定した場合、"The" または "the" に一致します。 |
| ! | 否定演算子。a!b と指定した場合、後ろに "b"が続いていない "a" に一致します。 |
省略形
| 省略形 | 対応する表現 |
|---|---|
| \a | 任意の英数字 : ([a-zA-Z0-9]) |
| \b | 空白 : ([ \\t]) |
| \c | 任意の英字 : ([a-zA-Z]) |
| \d | 任意の 10 進数字 : ([0-9]) |
| \h | 任意の 16 進数字 : ([0-9a-fA-F]) |
| \n | 改行文字 : (\r|(\r?\n)) |
| \q | 引用符で囲まれた文字列 : (\"[^\"]*\")|(\'[^\']*\') |
| \w | 単語 : ([a-zA-Z]+) |
| \z | 整数 : ([0-9]+) |