1。文字列の正規表現
正規表現を使用して、弦の検索、抽出、セグメント、交換、その他の操作を使用します。次の特別な方法は、文字列クラスで提供されています。
ブールマッチ(String Regex):文字列が指定された正規表現と一致するかどうかを判断します。
string laterall(string regex、string facterement):この文字列の正規表現に一致するすべてのサブストリングを置き換えて置き換えます。
string [] split(string regex):regexをセパレーターとして使用して、文字列を複数のサブストリングに分割します。
上記の特別な方法はすべて、Javaが提供する正規表現に依存しています。
2。正規表現を作成します
x:文字x(xは任意の法律文字を表すことができます);
/0mnn:octal number omnnで表されるキャラクター。
/XHH:ヘキサデシマル0xHHで表されるキャラクター。
/uhhhh:ヘキサデシマ0xhhhhで表されるユニコード文字;
/t:tab( '/u0009');
/n:new line(line newline)文字( '/u000a');
/r:キャリッジリターン文字( '/u000d');
/f:ページbreak( '/u000c');
/a:アラーム(ベル)シンボル( '/u0007');
/e:エスケープ文字( '/u001b');
/CX:xに対応するコントローラー。たとえば、 /cmはCtrl-Mに一致します。 x値は、〜zまたはa〜zの1つでなければなりません。
3。正規表現の特殊文字
$:行の終わりを一致させます。 $文字自体を一致させるには、 /$を使用します。
^:行の始まりを一致させます。 ^文字自体を一致させるには、 / ^を使用します。
():サブエクセプションの開始位置と終了位置をマークします。これらの文字を一致させるには、 /(および /)を使用します。
[]:ブラケット式の開始位置と終了位置を決定するために使用されます。これらの文字を一致させるには、 /[and /]を使用します。
{}:以前のサブエクスペッションの頻度をマークするために使用されます。これらの文字を一致させるには、 /{および /}を使用します。
*:以前のサブエクスペッションがゼロ以上に発生する可能性があることを指定します。 *文字自体を一致させるには、 / *を使用します。
+:以前のサブエクスペッションが1回以上発生する可能性があることを指定します。 +文字自体を一致させるには、 / +を使用します。
?:以前のサブエクスペッションがゼロまたは1回発生する可能性があることを指定します。文字自体に一致するには、使用 /?;
。:ラインブレーク/n以外のユニット文字を一致させます。一致するために、キャラクター自体、使用 /。
/:次のキャラクターから脱出するか、Octalまたは16進数文字を指定するために使用されます。一致 /文字を合わせるには、//を使用してください。
|:2つの項目のいずれかを指定します。 |文字自体に一致するには、 /|を使用します。
4。事前定義された文字
。:任意の文字を一致させることができます。
/d:0〜9のすべての数値を一致させます。
/D:ナンバー以外を一致させます。
/s:スペース、タブ、キャリッジリターン、ページブレーク、ラインブレークなど、すべての白人文字を一致させます。
/s:すべての非白文字の文字を一致させます。
/w:0〜9のすべての数字、26の英語の文字とアンダースコア(_)を含むすべての単語文字に一致します。
/w:すべての非単語文字を一致させます。
5。境界マッチング文字
^:行の始まり
$:行の終わり
/B:単語の境界
/B:非単語境界
/A:入力の始まり
/g:前の試合の終わり
/Z:入力の終わり、最後のエンディング文字のみの場合のみ
/Z:入力の終わり
6。一致数を表すシンボル
次の図は、シンボルの左側に表示される回数を決定するために使用される一致数を表すシンボルを示しています。
(1)テキストファイルで米国の社会保障番号を検索すると仮定します。この数値の形式は999-99-9999です。それを一致させるために使用される正規表現を図1に示します。正規表現では、ハイフン( " - ")には0から9などの範囲を表す特別な意味があります。したがって、社会保障番号のハイフンを一致させる場合、エスケープキャラクター "/"が先行する必要があります。
(2)検索時に、ハイフンが現れるかどうかを望んでいると仮定します - つまり、999-99-9999および9999999999999は両方とも正しい形式です。この時点で、「?」を追加できます。図に示すように、ハイフン後の数量適格記号:
(3)以下の別の例を見てみましょう。アメリカの自動車ナンバープレートの1つの形式は、4つの数字と2文字です。その正規表現の前には、数値パート「[0-9] {4}」と文字パーツ[AZ] {2} "が前にあります。次の図は、完全な正規表現を示しています。
7。いくつかの例1
関数置換(content){var reg = '// [(// w+)//]'、pattern = new regexp(reg、 'g'); return content.replace(pattern、 '<img src = "img/$ 1.png">');} //またはfunction leplage(content){return content.replace(// [(/w+)// g、 '<img src = "img/$ 1.png">');};}例2
//ゼロワイド代替ソリューションの背後にある//(?<= ...)および(?<!...)//方法1:文字列を逆にし、lookaheadで検索し、それを置き換えてから巻き戻し、string.prototype.reverse = function(){return this.split( '')。 'foo.bar | baz'.Replace(/(?<=/。)b/、' c ')b/')をすぐに置き換えます。その前でc'foo.bar | baz'.Reverse()。置換(/b(?=/。)/g、 'c')。前にc'foo.bar | baz'.Replace(/(/。)?b/、function($ 0、$ 1){return $ 1?$ 1 + 'c':$ 0;})//foo.car -baz//simulate 'foo.bar | baz'.replace(/?<! '.bar | baz'.replace(/(/。)?b/、function($ 0、$ 1){return $ 1?$ 0:' c ';})//foo.bar|caz//this方法は比較的単純なシナリオで役立ち、Lookead //が使用できる// //'TTTT'.REPLACE(/?< = t/g、 'x')結果は「txxx''tttt'.Replace(/(t)?t/g、function($ 0、$ 1){return $ 1?$ 1 + 'x':$ 0;})// txtxxxx例3
$&シンボルの使用
関数ESCAPEREGEXP(str){return str.replace(/[abc]/g、 "($&)");} var str = 'a12b34c'; console.log(escaperegexp(str)); //(a)12(b)34(c)