JavaScript の正規(guī)表現(xiàn)
正規(guī)表現(xiàn) (英語: Regular Expression、コード內(nèi)では regex、regexp、または RE と略されることがよくあります) は、単一の文字列を使用して、特定の構(gòu)文ルールに準(zhǔn)拠する一連の文字列検索パターンを記述し、一致させます。
テキスト検索とテキスト置換に使用できる検索モード。
正規(guī)表現(xiàn)とは何ですか?
正規(guī)表現(xiàn)は、一連の文字によって形成される検索パターンです。
テキスト內(nèi)のデータを検索する場(chǎng)合、検索パターンを使用してクエリの対象を説明できます。
正規(guī)表現(xiàn)には、単純な文字またはより複雑なパターンを使用できます。
正規(guī)表現(xiàn)は、すべてのテキスト検索およびテキスト置換操作に使用できます。
文法
/pattern/modifiers;
例:
var patt = /phpl/i
分析例:
/php/i は正規(guī)表現(xiàn)です。
php はパターン (検索に使用されます) です。
i は修飾子です (検索では大文字と小文字は區(qū)別されません)。
文字列メソッドの使用
JavaScript では、通常、正規(guī)表現(xiàn)は 2 つの文字列メソッド search() と replace() で使用されます。
search() メソッドは、文字列內(nèi)の指定された部分文字列を取得するか、正規(guī)表現(xiàn)に一致する部分文字列を取得するために使用され、部分文字列の開始位置を返します。
replace() メソッドは、文字列內(nèi)の一部の文字を他の文字に置き換えたり、正規(guī)表現(xiàn)に一致する部分文字列を置き換えたりするために使用されます。
search()メソッドは正規(guī)表現(xiàn)を使用します
例
正規(guī)表現(xiàn)を使用して、大文字と小文字を區(qū)別せずに「php.cn」文字列を検索します:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文網(wǎng)(php.cn)</title> </head> <body> <p>搜索字符串 "php.cn", 并顯示匹配的起始位置:</p> <button onclick="myFunction()">點(diǎn)我</button> <p id="demo"></p> <script> function myFunction() { var str = "Visit php.cn!"; var n = str.search(/php.cn/i); document.getElementById("demo").innerHTML = n; } </script> </body> </html>
プログラムを?qū)g行して試してください
search() メソッドは文字列を使用します
検索メソッドはパラメータとして文字列を使用できます。文字列パラメータは正規(guī)表現(xiàn)に変換されます:
例
文字列內(nèi)の「php.cn」の部分文字列を取得します:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文網(wǎng)(php.cn)</title> </head> <body> <p>搜索字符串 "php.cn", 并顯示匹配的起始位置:</p> <button onclick="myFunction()">點(diǎn)我</button> <p id="demo"></p> <script> function myFunction() { var str = "Visit php.cn!"; var n = str.search("php.cn"); document.getElementById("demo").innerHTML = n; } </script> </body> </html>
プログラムを?qū)g行して試してください
replace()メソッド正規(guī)表現(xiàn)を使用します。 Expression
例
正規(guī)表現(xiàn)と大文字小文字を區(qū)別して、文字列內(nèi)の Microsoft を php.cn に置き換えます:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文網(wǎng)(php.cn)</title> </head> <body> <p>替換 "microsoft" 為 "php.cn" :</p> <button onclick="myFunction()">點(diǎn)我</button> <p id="demo">請(qǐng)?jiān)L問 Microsoft!</p> <script> function myFunction() { var str = document.getElementById("demo").innerHTML; var txt = str.replace(/microsoft/i,"php.cn"); document.getElementById("demo").innerHTML = txt; } </script> </body> </html>
プログラムを?qū)g行して試してください
replace() メソッド文字列を使用する
replace() メソッドはパラメータとして文字列を受け取ります:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文網(wǎng)(php.cn)</title> </head> <body> <p>替換 "Microsoft" 為 "php.cn" :</p> <button onclick="myFunction()">點(diǎn)我</button> <p id="demo">請(qǐng)?jiān)L問 Microsoft!</p> <script> function myFunction() { var str = document.getElementById("demo").innerHTML; var txt = str.replace("Microsoft","php.cn"); document.getElementById("demo").innerHTML = txt; } </script> </body> </html>
プログラムを?qū)g行して試してください
ヒント:
上記のメソッドでは正規(guī)表現(xiàn)パラメータを使用できます (代わりに)文字列パラメータの)。
正規(guī)表現(xiàn)を使用すると、検索機(jī)能がより強(qiáng)力になります (例では大文字と小文字が區(qū)別されないなど)。
正規(guī)表現(xiàn)修飾子
修飾子はグローバル検索で大文字と小文字を區(qū)別しないことができます:
修飾子 | 説明 |
---|---|
i | Perform活動(dòng)性の一致。 |
g | グローバルマッチングを?qū)g行します(最初の一致が見つかった後に停止するのではなく、すべての一致を検索します)。 |
m | 複數(shù)行のマッチングを?qū)g行します。 |
正規(guī)表現(xiàn)パターン
角括弧は文字の範(fàn)囲を検索するために使用されます:
Expression | Description |
---|---|
[abc] | 角括弧文字の間にあるものを検索します。 |
[0-9] | 0 から 9 までの任意の數(shù)字を見つけます。 |
(x|y) | | で區(qū)切られたオプションを検索します。 |
メタキャラクターは特別な意味を持つ文字です:
メタキャラクター | 説明 |
---|---|
d | 數(shù)字を見つけます。 |
s | 空白文字を検索します。 |
b | 単語の境界を一致させます。 |
uxxxx | 16 進(jìn)數(shù) xxxx として指定された Unicode 文字を検索します。 |
數(shù)量子:
數(shù)量子 | 説明 |
---|---|
n+ | は、少なくとも 1 つの n を含む文字列と一致します。 |
n* | は、0個(gè)以上のnを含む任意の文字列と一致します。 |
n? | は、0または1つのnを含む文字列と一致します。 |
RegExp オブジェクトの使用
JavaScript では、RegExp オブジェクトは、事前定義されたプロパティとメソッドを持つ正規(guī)表現(xiàn)オブジェクトです。
test()を使う
test()メソッドは正規(guī)表現(xiàn)メソッドです。
test() メソッドは、文字列が特定のパターンに一致するかどうかを検出するために使用されます。文字列に一致するテキストが含まれている場(chǎng)合は true を返し、そうでない場(chǎng)合は false を返します。
次の例は、文字列內(nèi)の文字「e」を検索するために使用されます:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文網(wǎng)(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>
プログラムを?qū)g行して試してください
上記の 2 行のコードは、正規(guī)表現(xiàn)変數(shù)を設(shè)定する必要はありません。 1 行にまとめる:
/e/ .test("The best things in life is free!")
exec() を使用する
exec() メソッドは正規(guī)表現(xiàn)メソッドです。 。
exec() メソッドは、文字列內(nèi)の正規(guī)表現(xiàn)の一致を取得するために使用されます。
この関數(shù)は、一致する結(jié)果を格納する配列を返します。一致するものが見つからない場(chǎng)合、戻り値は null になります。
次の例は、文字列內(nèi)の文字「e」を検索するために使用されます:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文網(wǎng)(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>
プログラムを?qū)g行して試してください