<html>
<link rel="stylesheet" href="josh.css">
<body bgcolor="#FFFFFF">

		<div id="説明">
			<table cellpadding="0" cellspacing="0" border="0" width="100%" class="main">
				<tr><td valign="top" class="name">regular expression</td><td valign="top" nowrap class="compatibility">NN <span class="emphasis">4</span> IE <span class="emphasis">4</span> ECMA <span class="emphasis">3</span></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal"></p>
					</td><td valign="top" nowrap class="requirements"></td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<p>regular expression オブジェクトは <span class="literal">RegExp</span> オブジェクトのインスタンスです。正規表現オブジェクトはそれぞれ、文字列のパターンマッチングを行うために使用されるパターンから構成されています。正規表現のパターンは簡単な文字列であることも、基本的にそれだけで独立して言語である表記を使用した高度な表現であることもあります。JavaScript 1.2 での正規表現の実装は、Perl での実装方法に非常に類似しています。この概念については、JavaScript 1.2 以降の関連文書を参照してください。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
						<tr>
							<td colspan="2"><p>正規表現オブジェクトを作成するには、パターンをスラッシュで囲み、変数に表現全体を代入します。たとえば、次のステートメントは簡単な語のパターンを持つ正規表現を作成します。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
						<tr>
							<td colspan="2"><span class="programlisting"><pre>var re = /greet/;</pre>
								</span></td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
						<tr>
							<td colspan="2"><p>次に <span class="literal">re</span> 変数を、文字列内でパターンを探すさまざまなメソッド内でパラメータとして使用します。また変数に代入する代わりに、表現を直接メソッドパラメータとして使用することもできます。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
						<tr>
							<td colspan="2"><p>また正規表現の表記は、語の左右の単語区切りや、数値、または文字などのような、複雑な概念として機能する多数のメタ文字から構成されます。たとえば、前述の文字パターンをパターンが語である場合に限り (また greetins などのような他の語の一部ではない) 探す場合には、メタ文字を使用してパターンの両側に単語の区切りがあることを示します。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
						<tr>
							<td colspan="2"><span class="programlisting"><pre>var re = /\bgreet\b/;</pre>
								</span></td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
						<tr>
							<td colspan="2"><p>次の表に、JavaScript 1.2 で使用されている正規表現の表記を要約しました。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
						<tr>
							<td colspan="2">
								<table border="1"><tbody><tr><th>文字</th><th>マッチング</th><th>例</th></tr>
										<tr>
											<td><pre> \b</pre>
											</td><td>単語の区切り</td><td><span class="literal">/\bto/</span> は "tomorrow" と一致し、<span class="literal">/to\b/</span> は "Soweto" と一致します。
<span class="literal">/\bto\b/</span> は "to" に一致します。
</td>
										</tr>
										<tr>
											<td><pre> \B</pre>
											</td><td>単語の区切りなし</td><td><span class="literal">/\Bto/</span> は "stool" や "Soweto" と一致し、<span class="literal">/to\B/</span> は "stool" や "tomorrow" と一致します。
<span class="literal">/\Bto\B/</span> は "stool" と一致します。
</td>
										</tr>
										<tr>
											<td><pre> \d</pre>
											</td><td>0 ～ 9 の数値</td><td><span class="literal">/\d\d/</span> は "42" と一致します。
</td>
										</tr>
										<tr>
											<td><pre> \D</pre>
											</td><td>数値以外の文字</td><td><span class="literal">/\D\D/</span> は "to" と一致します。
</td>
										</tr>
										<tr>
											<td><pre> \s</pre>
											</td><td>1 つのスペース</td><td><span class="literal">/under\sdog/</span> は "under dog" と一致します。
</td>
										</tr>
										<tr>
											<td><pre> \S</pre>
											</td><td>スペース以外の 1 文字</td><td><span class="literal">/under\Sdog/</span> は "under-dog" と一致します。
</td>
										</tr>
										<tr>
											<td><pre> \w</pre>
											</td><td>英数字またはアンダースコア</td><td><span class="literal">/1\w/</span> は "1A" と一致します。
</td>
										</tr>
										<tr>
											<td><pre> \W</pre>
											</td><td>\w 以外の文字</td><td><span class="literal">/1\W/</span> は "1%" と一致します。
</td>
										</tr>
										<tr>
											<td><pre> .</pre>
											</td><td>改行文字を除く任意の 1 文字</td><td><span class="literal">/../</span> は "Z3" と一致します。</td>
										</tr>
										<tr>
											<td><pre> [...]</pre>
											</td><td>かっこ内にある文字のいずれか</td><td><span class="literal">/J[aeiou]y/</span> は "Joy" と一致します。
</td>
										</tr>
										<tr>
											<td><pre> [^...]</pre>
											</td><td>かっこ内の文字以外の任意の 1 文字</td><td><span class="literal">/J[^eiou]y/</span> は "Jay" と一致します。
</td>
										</tr>
										<tr>
											<td><pre> *</pre>
											</td><td>ゼロ回以上</td><td><span class="literal">/\d*/</span> は ""、"5"、"444" と一致します。
</td>
										</tr>
										<tr>
											<td><pre> ?</pre>
											</td><td>ゼロ回または 1 回</td><td><span class="literal">/\d?/</span> は "" または "5" と一致します。
</td>
										</tr>
										<tr>
											<td><pre> +</pre>
											</td><td>1 回以上</td><td><span class="literal">/\d+/</span> は "5" または "444" と一致します。
</td>
										</tr>
										<tr>
											<td><pre> &#123;n}</pre>
											</td><td>n 回</td><td><span class="literal">/\d&#123;2}/</span> は "55" と一致します。
</td>
										</tr>
										<tr>
											<td><pre> &#123;n,}</pre>
											</td><td>n 回以上</td><td><span class="literal">/\d&#123;2,}/</span> は "555" と一致します。
</td>
										</tr>
										<tr>
											<td><pre> &#123;n,m}</pre>
											</td><td>最低 n 回、最高 m 回</td><td><span class="literal">/\d&#123;2,4}/</span> は "5555" と一致します。
</td>
										</tr>
										<tr>
											<td><pre> ^</pre>
											</td><td>文字列や行の始め</td><td><span class="literal">/^Sally/</span> は "Sally says..." と一致します。
</td>
										</tr>
										<tr>
											<td><pre> $</pre>
											</td><td>文字列または行の終わり</td><td><span class="literal">/Sally.$/</span> は "Hi, Sally." と一致します。
</td>
										</tr>
									</tbody></table>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
						<tr>
							<td colspan="2"><p>正規表現を作成する場合、オプションとしてグローバルで機能するように、またマッチで大文字と小文字を無視するように表現を設定することができます。メソッドで正規表現が検索と置換を行い、目標はすべて置換した結果である場合には、通常このようにします。これらのスイッチをオンにする補助キーは、文字 <span class="literal">g</span> と <span class="literal">i</span> です。これらの補助キーは単独で、または <span class="literal">gi</span> のように一緒に使用することもできます。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
						<tr>
							<td colspan="2"><p>正規表現でパターンを作成すると、正規表現オブジェクトメソッドおよび正規表現パラメータを受け付ける <span class="literal">String</span> オブジェクトメソッドでアクションが実行されます。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">正規表現オブジェクトの作成</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr><tr>
					<td colspan="2"><span class="programlisting"><pre>var regExpressionObj = /pattern/ [g | i | gi];
var regExpressionObj = new RegExp(["pattern", ["g" | "i" | "gi"]]);</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">プロパティ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr><tr>
					<td colspan="2">
						<table border="1"><tbody><tr />
								<tr><td><span class="literal">constructor</span></td><td> <span class="literal">global</span></td><td> <span class="literal">ignoreCase</span></td><td> <span class="literal">lastIndex</span></td><td> <span class="literal">source</span></td>
								</tr>
							</tbody></table>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">メソッド</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr><tr>
					<td colspan="2">
						<table border="1"><tbody><tr />
								<tr><td><span class="literal">compile()</span></td><td> <span class="literal">exec()</span></td><td> <span class="literal">test()</span></td>
								</tr>
							</tbody></table>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
				</tr>
			</table>
		</div><div id="constructor">
			<table cellpadding="0" cellspacing="0" border="0" width="100%" class="main">
				<tr><td valign="top" class="name">constructor</td><td valign="top" nowrap class="compatibility">NN <span class="emphasis">4</span> IE <span class="emphasis">4</span> ECMA <span class="emphasis">3</span></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal"></p>
					</td><td valign="top" nowrap class="requirements">読み書き</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<p><span class="literal">Array</span> オブジェクトのプロパティを参照してください。</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
					</td>
				</tr>
			</table>
		</div><div id="global、ignoreCase">
			<table cellpadding="0" cellspacing="0" border="0" width="100%" class="main">
				<tr><td valign="top" class="name">global、ignoreCase</td><td valign="top" nowrap class="compatibility">NN <span class="emphasis">4</span> IE <span class="emphasis">5 (Mac)/5.5 (Win)</span> ECMA <span class="emphasis">3</span></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal"></p>
					</td><td valign="top" nowrap class="requirements">読み取り専用</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<p>正規表現オブジェクトのインスタンスの作成時に <span class="literal">g</span> または <span class="literal">i</span> の補助キーが設定されていた場合にブール値 <span class="literal">true</span> を返します。正規表現オブジェクトに両方の補助キーが設定されている場合には (<span class="literal">gi</span>)、プロパティをそれぞれ個別にテストする必要があります。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr><tr>
					<td colspan="2"><span class="programlisting"><pre>if (myRE.global &amp;&amp; myRE.ignoreCase) &#123;
    ...
}</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">値</span></td>
				</tr>
				<tr>
					<td colspan="2"><p><span class="literal">true</span> か <span class="literal">false</span> のブール値</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
				</tr>
			</table>
		</div><div id="lastIndex">
			<table cellpadding="0" cellspacing="0" border="0" width="100%" class="main">
				<tr><td valign="top" class="name">lastIndex</td><td valign="top" nowrap class="compatibility">NN <span class="emphasis">4</span> IE <span class="emphasis">4</span> ECMA <span class="emphasis">3</span></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal"></p>
					</td><td valign="top" nowrap class="requirements">読み書き</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<p>次のパターンマッチングを開始する、文字列内の文字のゼロから始まるインデックス値です。新しい検索では、値はゼロです。別の場所から開始したり、特定の文字をスキップする場合には、手動で設定することもできます。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr><tr>
					<td colspan="2"><span class="programlisting"><pre>myRE.lastIndex = 30;</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">値</span></td>
				</tr>
				<tr>
					<td colspan="2"><p>整数値</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
				</tr>
			</table>
		</div><div id="source">
			<table cellpadding="0" cellspacing="0" border="0" width="100%" class="main">
				<tr><td valign="top" class="name">source</td><td valign="top" nowrap class="compatibility">NN <span class="emphasis">4</span> IE <span class="emphasis">4</span> ECMA <span class="emphasis">3</span></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal"></p>
					</td><td valign="top" nowrap class="requirements">読み取り専用</td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<p>正規表現を作成するために使用される文字の文字列を返します。値には表現を囲むスラッシュ区切りは含まれません。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">例</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr><tr>
					<td colspan="2"><span class="programlisting"><pre>var myREasString = myRE.source;</pre>
						</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">値</span></td>
				</tr>
				<tr>
					<td colspan="2"><p>文字列</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
				</tr>
			</table>
		</div><div id="compile()">
			<table cellpadding="0" cellspacing="0" border="0" width="100%" class="main">
				<tr><td valign="top" class="name">compile()</td><td valign="top" nowrap class="compatibility">NN <span class="emphasis">4</span> IE <span class="emphasis">4</span> ECMA <span class="emphasis">なし</span></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">compile("<span class="replaceable">pattern</span>"[, "g" | "i" | "gi"])</p>
					</td><td valign="top" nowrap class="requirements"></td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<p>正規表現パターンを本来の正規表現オブジェクトにコンパイルします。このメソッドは主に、スクリプトの実行中にパターンが変更する可能性のある正規表現を再コンパイルするために使用されます。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">戻り値</span></td>
				</tr>
				<tr>
					<td colspan="2"><p>正規表現のインスタンスへの参照</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
				</tr>
				<tr>
					<td colspan="2">
						<ul><li><i><span class="replaceable">pattern</span></i><br>&nbsp;
						  引用された文字列としての、あらゆる正規表現パターン。グローバル、大文字小文字の無視、またはその両方の補助キーは、引用符で囲んだ別個のパラメータとして指定する必要があります。
</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
				</tr>
			</table>
		</div><div id="exec()">
			<table cellpadding="0" cellspacing="0" border="0" width="100%" class="main">
				<tr><td valign="top" class="name">exec()</td><td valign="top" nowrap class="compatibility">NN <span class="emphasis">4</span> IE <span class="emphasis">4</span> ECMA <span class="emphasis">3</span></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">exec(<span class="replaceable">string</span>)</p>
					</td><td valign="top" nowrap class="requirements"></td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<p>パラメータとして渡された文字列内で現在の正規表現パターンを検索します。この形式には一般的なシーケンスが続きます。
</p>
							</td>
						</tr>
						<tr><td height="24" colspan="2" valign="top" class="clearseparation">&nbsp;</td>
						</tr>
						<tr>
							<td colspan="2"><span class="programlisting"><pre>var myRE = /somePattern/;
var resultArray = myRE.exec("someString");</pre>
								</span></td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
						<tr>
							<td colspan="2"><p>静的 <span class="literal">RegExp</span> と正規表現のインスタンス (例内では <span class="literal">myRE</span>) オブジェクトの両方のプロパティは、検索の結果に関する情報で更新されます。また <span class="literal">exec()</span> メソッドは、<span class="literal">RegExp</span> オブジェクトプロパティに類似したデータの配列を返します。返される配列には次のプロパティが含まれます。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
						<tr>
							<td colspan="2">
								<ul><li><i><span class="literal">index</span></i><br>&nbsp;
						  パターンにマッチする、文字列内にある開始文字のゼロから始まるインデックス
</li><li><i><span class="literal">input</span></i><br>&nbsp;
						  検索中の文字列</li><li><i><span class="literal">[0]</span></i><br>&nbsp;
						  パターンに一致する文字列</li><li><i><span class="literal">[1]...[n]</span></i><br>&nbsp;
						  かっこに入ったコンポーネントマッチの結果の文字列</li></ul>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
						<tr>
							<td colspan="2"><p><span class="literal">exec()</span> メソッドの結果は変数に入れられますが、<span class="literal">RegExp</span> プロパティ値は次の正規表現演算で変化します。正規表現がグローバル検索に設定されている場合には、その後の <span class="literal">myRE.exec("</span><span class="replaceable">someString</span><span class="literal">")</span> のコールは、最後のマッチ位置から検索が続行します。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
						<tr>
							<td colspan="2"><p>特定の <span class="literal">exec()</span> コールでマッチが見つからない場合には、<span class="literal">null</span> が返されます。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">戻り値</span></td>
				</tr>
				<tr>
					<td colspan="2"><p>マッチがある場合にはマッチの配列、ない場合には <span class="literal">null</span>
</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
				</tr>
				<tr>
					<td colspan="2">
						<ul><li><i><span class="replaceable">string</span></i><br>&nbsp;
						  検索する文字列</li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
				</tr>
			</table>
		</div><div id="test()">
			<table cellpadding="0" cellspacing="0" border="0" width="100%" class="main">
				<tr><td valign="top" class="name">test()</td><td valign="top" nowrap class="compatibility">NN <span class="emphasis">4</span> IE <span class="emphasis">4</span> ECMA <span class="emphasis">3</span></td>
				</tr>
				<tr>
					<td valign="top" nowrap class="usage"><p class="literal">test(<span class="replaceable">string</span>)</p>
					</td><td valign="top" nowrap class="requirements"></td>
				</tr>
				<tr>
					<td valign="top" colspan="2" class="description">
						<p>パラメータとして渡された文字列内に正規表現のマッチがある場合にはブール値の <span class="literal">true</span>、ない場合には <span class="literal">false</span> を返します。検索結果に関し、これ以外の情報はありません。これは文字列内に一致するパターンが存在するかどうかを確認する最も速い方法です。
</p>
							</td>
						</tr>
						<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
						</tr>
					</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">戻り値</span></td>
				</tr>
				<tr>
					<td colspan="2"><p><span class="literal">true</span> か <span class="literal">false</span> のブール値</p>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
				</tr>
				<tr>
					<td valign="top" colspan="2"><span class="title">パラメータ</span></td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
				</tr>
				<tr>
					<td colspan="2">
						<ul><li><i><span class="replaceable">string</span></i><br>&nbsp;
						  検索する文字列 </li></ul>
					</td>
				</tr>
				<tr><td valign="top" colspan="2" class="clearseparation">&nbsp;</td>
				</tr>
			</table>
		</div>
</body>
</html>