視覚障害者のための
正規表現入門6
【さまざまな表現】
この節では、これまでに説明した表現を含めて、さまざまな表現方法を列記します。
表現そのものは<>で囲み、その横に読み上げを書いています。
代表的なものばかりですが、処理系によってはサポートされない表現もあります。
この項はじっくり読んでください。
そしていろいろな場合に使って覚えてしまってください。
<|>パイプ
選択肢です。
a|b|cは、aまたはbまたはcです。
<*>アスタリスク
前置される正規表現の0回以上の繰り返しです。
<+>半角プラス
前置される正規表現の1回以上の繰り返しです。
<?>半角疑問符
前置される正規表現の0回またはきっちり1回の出現です。
たとえば正規表現ab?は、aまたはabにマッチします。
この表現をサポートしない処理系もあります。
<{m,n}>左中括弧+数字+半角コンマ+数字+右中括弧
前置される正規表現のm回以上n回までの繰り返しです。
たとえば正規表現ab{1,3}は、ab, abb, abbbにマッチします。
この表現をサポートしない処理系もあります。
<{m,}>左中括弧+数字+半角コンマ+右中括弧
前置される正規表現のm回以上の繰り返しです。
たとえば正規表現ab{3,}は、abbb, abbbb, abbbbbなどにマッチします。
この表現をサポートしない処理系もあります。
<{m}>左中括弧+数字+右中括弧
前置される正規表現のぴったりm回の繰り返しです。
たとえば正規表現ab{3,}は、abbbにマッチします。
この表現をサポートしない処理系もあります。
<.>半角ピリオド
半角ピリオドは、改行以外の任意の一文字を意味します。
だから正規表現としてのピリオドに半角プラスは、なんらかの文字の連なりを意味します。
<\d>エンマーク+半角小文字d
半角数字を意味します。
後述の文字リスト[0-9]と等価です。
正規表現\d+は、0123や956など、半角数字の1個以上の繰り返しです。
ただ全角数字は含みません。全角数字を含めたいときは、後述の文字リストを使い、[\d0-9](ここでの0、9は全角文字)などと表現する必要があります。
<\D>エンマーク+半角大文字D
半角数字以外の任意の文字を意味します。
後述の相補クラスを使った表現[^0-9]と等価です。
<\w>エンマーク+半角小文字w
英単語を構成する文字を意味します。
すなわち、半角英文字、半角数字、およびアンダーバーです。
後述の文字リストを使えば、[0-9A-Za-z_]と表現できます。
<\W>エンマーク+半角大文字W
英単語を構成する文字以外の任意の文字を意味します。
後述の相補クラスを使えば、[^0-9A-Za-z_]と表現できます。
<\s>エンマーク+半角小文字s
空白文字を意味します。
すなわち、半角スペース、タブ、復帰、改行、改ページのいずれかです。
全角空白を含みません。全角空白を含めたいときは、[\s ]とする必要があります。
<\S>エンマーク+半角大文字S
空白文字以外の任意の1文字を意味します。
<\r>エンマーク+半角小文字r
復帰文字です。
<\n>エンマーク+半角小文字n
改行文字です。
Windows系では、復帰+改行、すなわち\r\nでひとつの改行とします。
<\t>エンマーク+半角小文字t
水平タブです。
<\f>エンマーク+半角小文字f
改ページ文字です。
<\xXX>エンマーク+半角小文字x + 16進数を構成する文字
全体を文字コードと解釈します。
たとえば\x41なら半角大文字A, \x0Aなら改行文字です。
多くの処理系では、この表現が許されるのはASCII文字(半角文字)に限定されます。マルチバイト文字(全角文字)に対して使用すると、構文エラーになります。
<\文字>エンマーク+任意の文字
文字そのものを意味します。
前節で説明したように、メタ文字を通常文字として使う場合にこの表現を利用します。
<[文字リスト]>
大括弧で囲んだ表現は、文字リストと呼び、そこに含まれるなかの1文字を意味します。
たとえば正規表現[abc]はa、b, cのうちの一文字です。
だから正規表現[abc]+は、a, b, c, ab, ca, aaaaa, abbbc, ccbabなどにマッチします。
文字リストには、後述の文字-文字形式や、前述の\d, \sなどの表現を含めることができます。
<文字-文字>
文字ハイフン文字という表現形式は、文字の範囲を意味します。
この表現は、大括弧で囲み、文字リストとして使う場合に限り意味をもちます。
[A-Z]なら、英大文字の1文字を意味しますし、[a-z]なら小文字です。
2バイト文字に非対応の処理系も多いですが、Kazusoftのプログラムでは、2バイト文字を使い、ひらがな全体を現す[ぁ-ん]というような表現が可能です。
<[^文字リスト]>
文字リストの先頭にハットが前置されるときは、相補文字クラスを意味します。
たとえば正規表現[^abc]はa、b, c以外の任意の一文字です。
あるいは[^ぁ-ん]ならひらがな以外です。
<^>ハット
正規表現の冒頭にハット記号をおいたときは、検査する文字列の先頭または論理行頭を意味します。
つまり、その正規表現は、文字列の先頭または論理行頭からマッチしなければなりません。
この表現をサポートしない処理系もあります。
<$>ドルマーク
正規表現の末尾にドルマークをおいたときは、検査する文字列の末尾または論理行末を意味します。
つまり、その正規表現は、文字列の末尾または論理行末にマッチしなければなりません。
たとえば、正規表現^=+$は、
=========================================
のような、イコールだけで構成された行にマッチします。
この表現をサポートしない処理系もあります。
次の項目へ
前の項目へ
正規表現入門の目次ページ
文字主体トップページ
Copyright(C) 2003 Kazuhiro Kito All rights reserved