satoshiabe.jp : Regular Expressions MEMO

HOME > DOCUMENTS > Regular Expressions MEMO

Regular Expressions MEMO

Updated : 2006/01/25
Created : 2006/01/25

まえがき

空行にマッチする正規表現

マッチする回数を指定する正規表現

最初に出現する任意の文字にマッチする正規表現

リンク

まえがき

ここは、正規表現 (Regular Expressions) に関する自分用メモのページ。 正規表現についてのドキュメントは Web にも豊富にあるため、このページでは基本的なことを述べず、できるだけ実用的なケースを考えたい。

空行にマッチする正規表現

以下のサンプルは、空行にマッチする正規表現。

/^$/

ただし、よくあるケースが、空行に見えるが、実は、スペースかタブが入力されている、という行。 その場合、/^$/ ではマッチしないため、以下のように指定する。 文字クラスでスペースとタブを * で指定する。

/^[ ]*$/

マッチする回数を指定する正規表現

以下のサンプルは、東京都の電話番号 (03-xxxx-xxxx) にマッチする正規表現だ。

/^03-[0-9]\{4\}-[0-9]\{4\}$/

サンプルでは以下の構文を使用している。

{m} : 直前の文字の m 回にマッチする {m,} : 直前の文字の m 回以上にマッチする {m,n} : 直前の文字の m 回以上 n 回以下にマッチする

以下のサンプルは、- がスペースの場合 (03 xxxx xxxx) にでも対応できる。

/^03( |-)[0-9]\{4\}( |-)[0-9]\{4\}$/

最初に出現する任意の文字にマッチする正規表現

正規表現は、文字列に対して最長一致する。 サンプルのように、. に着目し、最初の aaa にマッチさせようとすると、実は、aaa.bbb.ccc でマッチしてしまっている。

aaa.bbb.ccc.html /^..*\./

そのためには、以下のように指定する。 + は、「直前の文字 1 文字以上」を指定するメタキャラクタだ。

/^[^.]+/

リンク

Manpage of REGEX (linux.or.jp)

Email to Satoshi ABE