JavaScript 正規表現

正規表現は検索パターンを構成する文字序列です。

この検索パターンはテキスト検索およびテキスト置換操作に使用できます。

正規表現とは何ですか?

正規表現は検索パターンを構成する文字序列です。検索パターン(search pattern)の文字列序列です。

テキスト内のデータを検索する際には、検索パターンを使用して検索内容を説明できます。

正規表現は単一の文字であっても、より複雑なパターンでもできます。

正規表現はすべての種類のテキスト検索およびテキスト置換操作です。

文法

/パターン/修飾子;

var patt = /codew3c/i;

例解:

/codew3c/i は正規表現です。

codew3c パターン(pattern)(検索で使用)です。

修飾子 修飾子(検索を大文字小文字を区別しないに変更)です。

文字列メソッドを使用します

JavaScript では、正規表現は主に以下の二つの文字列メソッドsearch() および replace()メソッドを使用して文字列を処理します。

search() メソッドは、パターンを使用して一致を検索し、その位置を返します。

replace()メソッドを使用して文字列を処理します。 メソッドは、置換されたパターンが変更された後の文字列を返します。

文字列メソッド search() を使用して文字列を処理します

search() メソッドはまた、検索パラメータとして文字列を受け入れます。文字列パラメータは正規表現に変換されます:

文字列を使用して「W3school」の検索を実行します:

var str = "Visit CodeW3C.com!";
var n = str.search("W3School"); 

実際に試してみてください

文字列メソッド search() で正規表現を使用します

正規表現を使用して「codew3c」を大文字小文字を区別しない検索を実行します:

var str = "Visit CodeW3C.com";
var str = "Visit CodeW3C.com"; 

var n = str.search(/codew3c/i);

nの結果は以下の通りです:

実際に試してみてください

6

replace()メソッドを使用して文字列を処理します。 replace()

大文字と小文字を区別しない正規表現を使用して、文字列内のMicrosoftをW3schoolに置き換えます:
replace()メソッドには文字列としても検索パラメータを受け入れます: 

実際に試してみてください

var res = str.replace("Microsoft", "W3School");

正規表現を使用してreplace()メソッド内で検索します。

大文字と小文字を区別しない正規表現を使用して、文字列内のMicrosoftをW3schoolに置き換えます:
var str = "Visit Microsoft!"; 

var res = str.replace(/microsoft/i, "W3School");

resの結果は以下の通りです:

実際に試してみてください

Visit CodeW3C.com!

気づきましたか?

正規表現パラメータ(文字列パラメータではなく)は上記のメソッドで使用できます。

正規表現は検索をより強力にできます(例えば、大文字と小文字を区別しない)。

大文字と小文字を区別しないより全体的な検索に使用できます:正規表現修飾子

大文字と小文字を区別しないより全体的な検索に使用できます: 説明 試してみてください。
修飾子 大文字と小文字を区別しない一致を実行します。 試してみてください。
g 全ての一致を検索する(最初の一致を見つけた後で停止しない)を実行します。 試してみてください。
m 複数行の一致を実行します。 試してみてください。

正規表現パターン

括号特定の範囲の文字列を検索するために使用されます:

表达式 説明 試してみてください。
[abc] 方括号内の任意の文字を検索します。 試してみてください。
[0-9] 0から9の任意の数字を検索します。 試してみてください。
(x|y) オプションを|で区切った任意のオプションを検索します。 試してみてください。

メタ文字(メタキャラクター)特殊な意味を持つ文字です:

メタ文字 説明 試してみてください。
\d 数字を検索します。 試してみてください。
\s 空白文字を検索します。 試してみてください。
\b ワード境界を一致させます。 試してみてください。
\uxxxx 16進数xxxxで指定されたUnicode文字を検索します。 試してみてください。

Quantifiers 量詞の定義:

量詞 説明 試してみてください。
n+ nを含む少なくとも1つの文字列を一致させます。 試してみてください。
n* nを含むかどうかの文字列をすべて一致させます。 試してみてください。
n? nを含むかどうかの文字列をすべて一致させます。 試してみてください。

RegExpオブジェクトを使用します。

JavaScriptでは、RegExpオブジェクトは事前定義された属性とメソッドを持つ正規表現オブジェクトです。

test()を使用します。

test() 正規表現メソッドです。

文字列をパターンで検索し、結果に従って true または false を返します。

以下の例は文字列内の文字 "e" を検索します:

var patt = /e/;
patt.test("The best things in life are free!"); 

文字列に "e" があるため、上記のコードの出力は以下のようになります:

true

実際に試してみてください

正規表現をまず変数に格納する必要はありません。上記の2行は1行に短縮できます:

/e/.test("The best things in life are free!");

exec() を使用して

exec() メソッドは正規表現メソッドです。

指定されたパターン(pattern)で文字列を検索し、見つかったテキストを返します。

一致が見つからない場合、null が返されます。

以下の例は文字列内の文字 "e" を検索します:

/e/.exec("The best things in life are free!");

文字列に "e" があるため、上記のコードの出力は以下のようになります:

e

実際に試してみてください

完全な RegExp リファレンスマニュアル

完全なリファレンスマニュアルが必要な場合は、私たちの完全な JavaScript RegExp リファレンスマニュアル

このリファレンスマニュアルには、すべての RegExp 属性とメソッドの説明と例が含まれています。