Last Update 2009/03/29
TOP - JavaScript - 正規表現 - 特殊な字句
正規表現中に特殊な機能の字句を入れることにより、位置を条件としたマッチや回数を条件としたマッチを試みる事が可能です。
以下のリストの字句は、右側に記載の位置・条件・字句にマッチします。
以下のリストの字句は、右側に記載の位置・条件・字句にマッチします。
^ : 文字列(/m指定時は「行」)の先頭
$ : 文字列(/m指定時は「行」)の末尾
\b : 単語境界
\B : 単語境界以外
{n,m} : n回以上m回以下の繰り返し
{n,} : n回以上の繰り返し
{n} : n回の繰り返し
* : 0回以上の繰り返し
+ : 1回以上の繰り返し
? : 0回または1回の繰り返し
\n : 改行文字
\r : 復帰文字
\t : タブ
\f : 改ページ文字
\d : 数字
\D : 数字以外
\w : 単語構成文字(英数字)
\W : 単語構成文字以外
\s : 空白文字
\S : 空白文字以外
. : 改行以外の全ての文字
(例1 位置関連)
<SCRIPT type="text/javascript">
<!--
function btnclick1()
{
var s = "";
// パターンマッチ対象文字列
var s_regex = "test1 test2 test3 test4 test5";
// 文字列先頭にマッチ
var a_reg = s_regex.match(/^te\w+/);
s += "/^te\\w+/ にマッチした文字列 : " + a_reg[0] + "\n";
// 文字列末尾にマッチ
a_reg = s_regex.match(/te\w+$/);
s += "/te\\w+$/ にマッチした文字列 : " + a_reg[0] + "\n";
// 単語境界にマッチ
a_reg = s_regex.match(/\w+st\d\b/);
s += "/\\w+st\\d\\b/ にマッチした文字列 : " + a_reg[0] + "\n";
// 単語境界以外にマッチ
a_reg = s_regex.match(/te\B\w+/);
s += "/te\\B\w+/ にマッチした文字列 : " + a_reg[0] + "\n";
alert(s);
}
//-->
</SCRIPT>
(例2 位置関連)
<SCRIPT type="text/javascript">
<!--
function btnclick2()
{
var s = "";
// パターンマッチ対象文字列
var s_regex = "test1 test2 test3 test4 test5";
// 2回以上3回以内の繰り返しにマッチ
var a_reg = s_regex.match(/(test\d\s){2,3}/);
s += "/(test\\d\\s){2,3}/ にマッチした文字列 : " + a_reg[0] + "\n";
// 2回以上の繰り返しにマッチ
a_reg = s_regex.match(/(test\d\s){2,}/);
s += "/(test\\d\\s){2,}/ にマッチした文字列 : " + a_reg[0] + "\n";
// 2回の繰り返しにマッチ
a_reg = s_regex.match(/(test\d\s){2}/);
s += "/(test\\d\\s){2}/ にマッチした文字列 : " + a_reg[0] + "\n";
// 0回以上の繰り返しにマッチ
a_reg = s_regex.match(/(test\d\s)*/);
s += "/(test\\d\\s)*/ にマッチした文字列 : " + a_reg[0] + "\n";
// 1回以上の繰り返しにマッチ
a_reg = s_regex.match(/(test\d\s)+/);
s += "/(test\\d\\s)+/ にマッチした文字列 : " + a_reg[0] + "\n";
// 0回または1回の繰り返しにマッチ
a_reg = s_regex.match(/(test\d\s)?/);
s += "/(test\\d\\s)?/ にマッチした文字列 : " + a_reg[0] + "\n";
alert(s);
}
//-->
</SCRIPT>
(例3 位置関連)
<SCRIPT type="text/javascript">
<!--
function btnclick3()
{
var s = "";
// パターンマッチ対象文字列
var s_regex = "test1:;{} test2";
// 数字にマッチ
var a_reg = s_regex.match(/\d/);
s += "/\\d/ にマッチした文字列 : " + a_reg[0] + "\n";
// 数字以外にマッチ
var a_reg = s_regex.match(/\D/);
s += "/\\D/ にマッチした文字列 : " + a_reg[0] + "\n";
// 単語構成文字にマッチ
var a_reg = s_regex.match(/\w/);
s += "/\\w/ にマッチした文字列 : " + a_reg[0] + "\n";
// 単語構成文字以外にマッチ
var a_reg = s_regex.match(/\W/);
s += "/\\W/ にマッチした文字列 : " + a_reg[0] + "\n";
// 空白文字にマッチ
var a_reg = s_regex.match(/\s/);
s += "/\\s/ にマッチした文字列 : " + a_reg[0] + "\n";
// 空白文字以外にマッチ
var a_reg = s_regex.match(/\S/);
s += "/\\S/ にマッチした文字列 : " + a_reg[0] + "\n";
// 改行文字以外にマッチ
var a_reg = s_regex.match(/./);
s += "/./ にマッチした文字列 : " + a_reg[0] + "\n";
alert(s);
}
//-->
</SCRIPT>