JavaScript の正規表現



正規表現 (英語: Regular Expression、コードでは regex、regexp、または RE と略されることがよくあります) は、単一の文字列を使用して、特定の構文ルールに準拠する一連の文字列検索パターンを記述し、一致させます。

テキスト検索とテキスト置換に使用できる検索モード。


正規表現とは何ですか?

正規表現は、一連の文字によって形成される検索パターンです。

テキスト内のデータを検索する場合、検索パターンを使用してクエリの対象を説明できます。

正規表現には、単純な文字またはより複雑なパターンを使用できます。

正規表現は、すべてのテキスト検索およびテキスト置換操作に使用できます。

文法

/パターン/修飾子;

例:

var patt = /php/i

分析例:

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

phpはパターン(検索に使用されます)です。

i は修飾子です (検索では大文字と小文字は区別されません)。


文字列メソッドの使用

JavaScript では、正規表現は通常、search() と replace() という 2 つの文字列メソッドで使用されます。

search() メソッド は、文字列内の指定された部分文字列を取得するか、正規表現に一致する部分文字列を取得するために使用され、部分文字列の開始位置を返します。

replace() メソッド は、文字列内の一部の文字を他の文字に置き換えたり、正規表現に一致する部分文字列を置き換えたりするために使用されます。


search()メソッドは正規表現を使用します

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>

<p>搜索字符串 "php", 并显示匹配的起始位置:</p>
<button onclick="myFunction()">点我</button>
<p id="demo"></p>
<script>
function myFunction() {
    var str = "Visit php!"; 
    var n = str.search(/php/i);
    document.getElementById("demo").innerHTML = n;
}
</script>

</body>
</html>

インスタンスを実行する»

オンラインの例を表示するには「インスタンスを実行」ボタンをクリックしてください


search()メソッドはstringを使用します

searchメソッド文字列をパラメータとして使用できます。文字列パラメータは正規表現に変換されます:

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>

<p>搜索字符串 "php", 并显示匹配的起始位置:</p>
<button onclick="myFunction()">点我</button>
<p id="demo"></p>
<script>
function myFunction() {
    var str = "Visit php!"; 
    var n = str.search("php");
    document.getElementById("demo").innerHTML = n;
}
</script>

</body>
</html>

インスタンスの実行»

オンラインの例を表示するには、[インスタンスの実行]ボタンをクリックしてください



replace()メソッドは正規表現を使用します

インスタンス

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php</title>
</head>
<body>

<p>替换 "microsoft" 为 php" :</p>
<button onclick="myFunction()">点我</button>
<p id="demo">请访问 Microsoft!</p>
<script>
function myFunction() {
    var str = document.getElementById("demo").innerHTML; 
    var txt = str.replace(/microsoft/i,"php");
    document.getElementById("demo").innerHTML = txt;
}
</script>

</body>
</html>

インスタンスの実行»

「インスタンスの実行」ボタンをクリックしてオンラインインスタンスを表示します


replace()メソッドは文字列を使用します

replace()メソッドは文字列を受け取りますパラメータとして:

インスタンス

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>

<p>替换 "Microsoft" 为 "php" :</p>
<button onclick="myFunction()">点我</button>
<p id="demo">请访问 Microsoft!</p>
<script>
function myFunction() {
    var str = document.getElementById("demo").innerHTML; 
    var txt = str.replace("Microsoft","php");
    document.getElementById("demo").innerHTML = txt;
}
</script>

</body>
</html>

インスタンスの実行»

[インスタンスの実行] ボタンをクリックしてオンライン インスタンスを表示します


気づきましたか?


Note上記のメソッドでは、(文字列パラメータの代わりに) 正規表現パラメータを使用できます。
正規表現を使用すると、検索機能がより強力になります (例では大文字と小文字が区別されないなど)。



正規表現修飾子

修飾子は、グローバル検索では大文字と小文字を区別できません

修飾子説明
i size Write insensitive マッチの実行。
g グローバルマッチングを実行します (最初の一致が見つかった後に停止するのではなく、すべての一致を検索します)。
m 複数行のマッチングを実行します。



正規表現パターン

角括弧は範囲内の文字を検索するために使用されます:メソッドは間にある文字を括弧で囲みます。

[0-9]0 から 9 までの任意の数字を見つけます。 (x|y) | で区切られたオプションを検索します。 メタキャラクター説明d
メタキャラクターは特別な意味を持つ文字です:

数字を見つけます。

s 空白文字を検索します。 b 単語の境界を一致させます。 uxxxx16 進数 xxxx として指定された Unicode 文字を検索します。 QuantifierDescriptionn+
Quantifier:

は、少なくとも 1 つの

n を含む任意の文字列と一致します。 n*は、0個以上のnを含む任意の文字列と一致します。 は、0または1つのnを含む文字列と一致します。
n?



RegExp オブジェクトの使用

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


test()を使う

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

test() メソッドは、文字列が特定のパターンに一致するかどうかを検出するために使用されます。文字列に一致するテキストが含まれている場合は true を返し、そうでない場合は false を返します。

次の例は、文字列内の文字 "e" を検索するために使用されます:

インスタンス

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>

<script>
var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));
</script>

</body>
</html>

インスタンスの実行»

オンラインの例を表示するには、[インスタンスの実行] ボタンをクリックします


exec()を使う

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

exec() メソッドは、文字列内の正規表現の一致を取得するために使用されます。

この関数は、一致する結果を格納する配列を返します。一致するものが見つからない場合、戻り値は null になります。

次の例は、文字列内の文字 "e" を検索するために使用されます:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>

<script>
var patt1=new RegExp("e");
document.write(patt1.exec("The best things in life are free"));
</script>

</body>
</html>

例の実行»

オンライン例を表示するには、[例の実行] ボタンをクリックしてください


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

完全な RegExp オブジェクト リファレンス マニュアルについては、JavaScript RegExp リファレンス マニュアルを参照してください。

このリファレンス マニュアルには、RegExp オブジェクトのすべてのメソッドとプロパティが含まれています。