RegExp 正規表現

regexp = new RegExp(patern[, flag])

正規表現オブジェクトを生成する。正規表現は文字列のパターンマッチング処理に使う。

flag意味
i大文字・小文字を区別しない
g2番目、3番目... にマッチする部分も検索する
m複数行に対して検索する

〔例1〕文字列DEFを含んでいるか調べる

str = "ABCDEFG";
re = new RegExp("DEF", "i");
if (str.match(re)) {
    alert("DEFを含んでいます。");
}

通常は、以下のように簡単に記述することが多い。

str = "ABCDEF";
if (str.match(/DEF/i)) {
    alert("DEFを含んでいます。");
}

RegExp.$記号

$記号意味
$nn番目の括弧に対応する文字列
$& 最後にマッチした文字列 (lastMatch)
$` マッチした部分の左側の文字列 (leftContext)
$" マッチした部分の右側の文字列(rightContext)
$+ 最後の (...) に対応する文字列を返す (lastParen)
$_ exec() でマッチングの対象とする文字列を代入 (input)
$* 行頭(^)や行末($)が各行の行頭、行末にマッチ (multiline)

正規表現の意味

正規表現 意味
A Aという文字
ABC ABCという文字列
[ABC] A、B、Cのいずれか1文字
[A-C] A~Cまでのいずれか1文字
[^ABC] A、B、Cのいずれでもない任意の1文字
. 任意の1文字
A+ 1文字以上のA
A* 0文字以上のA
A? 0文字または1文字のA
^A Aで始まる文字列
A$ Aで終わる文字列
ABC|DEF|GHI ABCまたはDEFまたはGHI
A{2} 2個のA(AA)
A{2,} 2個以上のA(AA、AAA、AAAA、...)
A{2,3} 2個~3個のA(AA、AAA)
[\b] バックスペース

バックスラッシュ(\または¥)に続く文字は特別な意味を持つ。

表現 意味
\b スペースなどの単語の区切り
\B \b以外の文字
\cA Ctrl-A
\d 任意の数値([0-9]と同じ)
\D 数値以外の文字([^0-9]と同じ)
\f フォームフィード文字
\n 改行文字
\r 復帰文字
\s 1文字の区切り文字([ \f\n\r\t\v])
\S \s以外の1文字
\t タブ文字
\v 垂直タブ文字
\w 英数文字([A-Za-z0-9_]と同じ)
\W \w以外の文字
\2 2番目の (...) にマッチした文字列
\o033 8進数で033の文字
\x1b 16進数で1bの文字
\その他 その他の文字自身