HOWTO · JavaScript
JavaScript の正規表現変数
このチュートリアルでは、JavaScript のテンプレート リテラルを使用して、正規表現内で変数を使用する方法に取り組みます。
regex とも呼ばれる正規表現は、照合するテキストのパターンを定義する一連の文字です。 正規表現は、文字列のみで使用されるオブジェクトです。
正規表現と利用可能なさまざまな文字クラスとフラグの詳細については、公式ドキュメント を参照してください。 この記事では、JavaScript の正規表現について簡単に説明します。
JavaScript でテンプレート リテラルを使用して正規表現で変数を使用する
JavaScript で正規表現を定義するには 2つの方法があります。1つはパターンをスラッシュ / で囲む正規表現リテラルを使用する方法で、もう 1つは RegExp オブジェクトのコンストラクター関数を呼び出す方法です。 このコンストラクター関数は 2つのパラメーターを受け取ります。1つ目は pattern で、2つ目は flag です。
このチュートリアルでは、RegExp オブジェクトのコンストラクター関数を使用し、JavaScript の正規表現内で変数を使用する方法を確認します。 以下の例では、さまざまな文字や数字に接続する inputString を取得しています。
ここでの目的は、パターンを作成し、それを RegExp コンストラクター関数に渡し、文字列内のすべての数字を単語に置き換えることです。
let inputString = "I work at 1. Android is developed by 2.";
RegExp コンストラクター関数は最初のパラメーターとしてパターンを取るので、pattern という名前の新しい変数を作成しましょう。 この変数内の文字列内の数字を検索する \\d を渡します。
\\b 文字で pattern 変数を囲み、それを RegExp コンストラクター関数の最初の引数として渡します。 しかし、pattern 変数を \\bpattern\\b として渡すだけでは機能せず、無効なエスケープ シーケンス エラーがスローされます。
これを機能させるには、テンプレート リテラルまたはテンプレート文字列を使用する必要があります。 文字列全体をバッククォート文字で囲み、pattern 変数を追加する場所では、${} を使用して、以下のコードに示すように波括弧内に pattern 変数を渡します。 スニペット。
コード スニペット - JavaScript:
let pattern = "\\d";
let re = new RegExp(`\\b${pattern}\\b`, 'gi');
console.log(inputString.replace(re, "Google"));
次に、コンストラクタ関数 RegExp の 2 番目の引数として gi を渡します。 g は入力文字列全体に対してグローバル検索を実行し、i は replace 関数内で提供された特定の単語のすべてのインスタンスを置き換えます。
次に、RegExp コンストラクター関数の結果を re (正規表現) 変数内に格納します。 最後に、inputString で文字列 replace() 関数を使用し、正規表現を最初のパラメーターとして渡し、新しい単語を一致した単語に置き換えます。
出力:
I work at Google. Android is developed by Google.
この場合、数字 1 と 2 を単語 Google に置き換えます。 したがって、re 変数内に格納された正規表現は、inputString 内でこれらの 2 桁を検索し、replace() 関数を使用してこれらの数字を単語 Google に置き換えます。