RegExp正則整合モードまとめ
4942 ワード
正規表現は別の強力なテキスト検索と処理を提供しています.正規表現に対して、異なる言語で実現されています.JavaScriptはPerl 5の文法を採用しています.極めて少数の整合モードは単純なフル文字テキストの場合、indexOfという方法を採用することが多いが、多くの場合、マッチングモードはより複雑になりがちである.
1、文法
1)JavaScriptでは、内部ビルダーRegExp()を用いて正規表現のオブジェクトを作成できます.
var re= new RegExp("j.**t")
2)もちろんRegExpオブジェクトを使う以外に、より簡便な正則テキスト表記法を採用できます.
var re=/j.*t/
2、RegExpオブジェクトの属性
1、global: グローバル検索をオンにするかどうか(デフォルトはfalseで、最初のものにのみマッチします)
2、ignoreCase:大きさを設定して相関を書きます.
3、multiline:横断検索を設定する
4、lastIndex:検索の開始インデックス位置は、デフォルトは0です.
5、source:正規表現を記憶するためのマッチングモード
laseIndex以外に、上のすべての属性は設定後は変更されません.つまり、
var re=/j.*t/ig;
re.global //true;
レ.global=false;
re.global //true;
3、RegExpオブジェクトの方法
RegExpオブジェクトには、マッチングコンテンツを検索するための方法が2つあります.test()とexec().これらの2つの方法のパラメータはすべて文字列で、test()方法は1つのブール値を返し、exec()は文字列にマッチする配列を返します.
1)match() マッチする内容を含む配列を返します.
2)search() 最初にマッチした内容の場所を返します.
3)replace() マッチしたテキストを置換して文字列を指定できます.
4)スプリット() 正則に従っていくつかの配列要素を分割します.
match()メソッド
var s=new String('Hello JavaScript World')
s.match(/a/) //["a"
s.match(/a/g) //[「a」、「a」]
s.match(/j.*a/i)/[[Java]
search()方法
searchメソッドは、マッチする文字列のインデックス位置を返します(0から開始します).
s.search(/j.**a/i) //5
replace()の方法
replaceはマッチしたテキストを置き換えるために使用されます.
s.replace(/[A-Z]/g,'_'); //_ハローJavaScript_ワールド
①$&元のマッチングオブジェクトを保持し、前に_を追加します.
②& 1はマッチングの第一グループを示しています.これを類推します.
スプリットメソッド
var csv="one,two,three,four"
csv.spilt(/\s*、\s*); //[one]、「two」、「three」、「four」)
①\s*は0つ以上のスペースにマッチするために使用します.
4、コールバック式置換
特定の代替動作を行う必要がある場合は、文字列の関数を返しても良いです.
var global
var calback=function(){
global=argmens;
return argmens[1]+a'+argmens[2]+dot'+argments[3];
)
var re=/(.*)@(.*)/;
「[email protected]「.replace(re,calback); //OkayChen at cnblogs dot com
5、正則マッチングモード
マッチングモード
に関する説明
[abc]
マッチする文字クラス情報>「Some Text」.match(/[otx]/g); //['o','t','x','t']
[a-z]
[a-z]は[abcd]に相当し、[a-z]は私達がすべての小文字に一致するという意味であり、[a-zA-Z 0-9_]はすべての文字、数字、下線に一致することです. 「Some Text」.match(/[a-z]/g); //['o','m',e',e','x',t']
[^abc]
限定された範囲に含まれていないすべての文字にマッチします.//S''',','T';
a 124 b
ここで一致するのはaまたはb>「Some Text」である.//[T','t']
a(?=b)
bに続くすべてのaの情報を一致させる. 「Some Text」.match(/Some(?=Tex)/g)//[「some」] > 「Some Text」.match(/Some(?=Tex)/g)//null
a(?!b)
bに従わないすべてのaの情報>「Some Text」とマッチします.match(/Some(?!Tex)/g) //[「そme」] > 「Some Text」.match(/Some(?!Tex)/g) //null
\
バックスラッシュは主にモードテキストの中の特殊文字にマッチするようにします. //〔「2」、「-」、「2」〕
\r\f\t\v
行と列の折り返しタブを横方向のタブに切り替えます.
\s
これはマッチする空白文字で、上の5つの変換記号が含まれています. 「R 2 D 2」.match(/\s/g); //[n]「」
\S
空白文字以外の内容にマッチすると、 [^\s]
\w
すべての文字、数字、下線にマッチします. [A-Za-z 0-9_]
\W
ちょうど\wと反対です.
\d
すべてのデジタルクラスにマッチする情報は[0-9]に相当します.
\D
ちょうど\dと反対です
\b
スペースや句読点などの単語の境界にマッチします.
\B
ちょうど\bと反対です.
[\b]
マッチするのは、チェックキーです.
\0
ここにマッチするのはnullです.
\oo
ここで一致するのはunicode文字で、4桁の16進数で表しています.
\x 00
ここで一致するのは1文字で、この文字の符号化は2桁の16進数で表されています. 「dude」.match(/x 64/g)//["d"d"
^
文字列の先頭部分にマッチします.mを設定すると、各行の先頭部分にマッチします.
$
文字列の末尾にマッチします.mを設定すると、各行の末尾にマッチします.
...
ここです マッチするのは改行記号以外の任意の文字です.
*
ここでマッチするのはモードの間に0回以上の内容が現れることです.例えば/.*/は、どのような内容にもマッチします.
?
マッチングモード中に0回または1回の内容が表示されます. 「anything」.match(/ng?/g) //[ng]、“n”]
+
ここでマッチングするのは、モードの中に少なくとも一回以上の内容があることです. //[R]、「D」、「and」、「C」、「po」)
{n}
マッチングモードでn回発生した内容> 「reglar expression」.match(/\b\w{3}/g)/[[reg],[exp]]
{min,max}
マッチングモードの中間出現回数がminとmaxの間の情報 ,maxを省略すると、最大回数がないことを意味します.
(pattern)
キャプチャモード>「reglar expression」.match(/(r)/g,'$1' //rreglarr expression>「reglar expression」.match(/(r)/g,「$2$1」) //erglar expression
(?:pattern)
これはキャプチャモードではありません.マッチング列を$1、$2などのパラメータで記録することができません.
上記は「JavaScriptオブジェクト向けプログラミングガイド」付録の30種類の正則マッチングモードであり、直接量文字、文字類、複製、参照パケットの選択、およびマッチング位置の指定ができます.
その中にはいくつかの等価関係があります.
\wは[A-Za-z 0-9_]に相当します.
\dは[0-9]に相当し、
\Dは[^0-9]または[^\d]に相当します.
この正則を記録してモードに合わせて、後で自分で使う必要があります.
1、文法
1)JavaScriptでは、内部ビルダーRegExp()を用いて正規表現のオブジェクトを作成できます.
var re= new RegExp("j.**t")
2)もちろんRegExpオブジェクトを使う以外に、より簡便な正則テキスト表記法を採用できます.
var re=/j.*t/
2、RegExpオブジェクトの属性
1、global: グローバル検索をオンにするかどうか(デフォルトはfalseで、最初のものにのみマッチします)
2、ignoreCase:大きさを設定して相関を書きます.
3、multiline:横断検索を設定する
4、lastIndex:検索の開始インデックス位置は、デフォルトは0です.
5、source:正規表現を記憶するためのマッチングモード
laseIndex以外に、上のすべての属性は設定後は変更されません.つまり、
var re=/j.*t/ig;
re.global //true;
レ.global=false;
re.global //true;
3、RegExpオブジェクトの方法
RegExpオブジェクトには、マッチングコンテンツを検索するための方法が2つあります.test()とexec().これらの2つの方法のパラメータはすべて文字列で、test()方法は1つのブール値を返し、exec()は文字列にマッチする配列を返します.
/j.*t/.test("JavaScript"); //false
/j.*t/i.test("JavaScript"); //true
/j.*t/i.exec("JavaScript")[0]; //"JavaScript"
正規表現をパラメータとする文字列の方法1)match() マッチする内容を含む配列を返します.
2)search() 最初にマッチした内容の場所を返します.
3)replace() マッチしたテキストを置換して文字列を指定できます.
4)スプリット() 正則に従っていくつかの配列要素を分割します.
match()メソッド
var s=new String('Hello JavaScript World')
s.match(/a/) //["a"
s.match(/a/g) //[「a」、「a」]
s.match(/j.*a/i)/[[Java]
search()方法
searchメソッドは、マッチする文字列のインデックス位置を返します(0から開始します).
s.search(/j.**a/i) //5
replace()の方法
replaceはマッチしたテキストを置き換えるために使用されます.
s.replace(/[A-Z]/g,'_'); //_ハローJavaScript_ワールド
①$&元のマッチングオブジェクトを保持し、前に_を追加します.
②& 1はマッチングの第一グループを示しています.これを類推します.
スプリットメソッド
var csv="one,two,three,four"
csv.spilt(/\s*、\s*); //[one]、「two」、「three」、「four」)
①\s*は0つ以上のスペースにマッチするために使用します.
4、コールバック式置換
特定の代替動作を行う必要がある場合は、文字列の関数を返しても良いです.
var global
var calback=function(){
global=argmens;
return argmens[1]+a'+argmens[2]+dot'+argments[3];
)
var re=/(.*)@(.*)/;
「[email protected]「.replace(re,calback); //OkayChen at cnblogs dot com
5、正則マッチングモード
マッチングモード
に関する説明
[abc]
マッチする文字クラス情報>「Some Text」.match(/[otx]/g); //['o','t','x','t']
[a-z]
[a-z]は[abcd]に相当し、[a-z]は私達がすべての小文字に一致するという意味であり、[a-zA-Z 0-9_]はすべての文字、数字、下線に一致することです. 「Some Text」.match(/[a-z]/g); //['o','m',e',e','x',t']
[^abc]
限定された範囲に含まれていないすべての文字にマッチします.//S''',','T';
a 124 b
ここで一致するのはaまたはb>「Some Text」である.//[T','t']
a(?=b)
bに続くすべてのaの情報を一致させる. 「Some Text」.match(/Some(?=Tex)/g)//[「some」] > 「Some Text」.match(/Some(?=Tex)/g)//null
a(?!b)
bに従わないすべてのaの情報>「Some Text」とマッチします.match(/Some(?!Tex)/g) //[「そme」] > 「Some Text」.match(/Some(?!Tex)/g) //null
\
バックスラッシュは主にモードテキストの中の特殊文字にマッチするようにします. //〔「2」、「-」、「2」〕
\r\f\t\v
行と列の折り返しタブを横方向のタブに切り替えます.
\s
これはマッチする空白文字で、上の5つの変換記号が含まれています. 「R 2 D 2」.match(/\s/g); //[n]「」
\S
空白文字以外の内容にマッチすると、 [^\s]
\w
すべての文字、数字、下線にマッチします. [A-Za-z 0-9_]
\W
ちょうど\wと反対です.
\d
すべてのデジタルクラスにマッチする情報は[0-9]に相当します.
\D
ちょうど\dと反対です
\b
スペースや句読点などの単語の境界にマッチします.
\B
ちょうど\bと反対です.
[\b]
マッチするのは、チェックキーです.
\0
ここにマッチするのはnullです.
\oo
ここで一致するのはunicode文字で、4桁の16進数で表しています.
\x 00
ここで一致するのは1文字で、この文字の符号化は2桁の16進数で表されています. 「dude」.match(/x 64/g)//["d"d"
^
文字列の先頭部分にマッチします.mを設定すると、各行の先頭部分にマッチします.
$
文字列の末尾にマッチします.mを設定すると、各行の末尾にマッチします.
...
ここです マッチするのは改行記号以外の任意の文字です.
*
ここでマッチするのはモードの間に0回以上の内容が現れることです.例えば/.*/は、どのような内容にもマッチします.
?
マッチングモード中に0回または1回の内容が表示されます. 「anything」.match(/ng?/g) //[ng]、“n”]
+
ここでマッチングするのは、モードの中に少なくとも一回以上の内容があることです. //[R]、「D」、「and」、「C」、「po」)
{n}
マッチングモードでn回発生した内容> 「reglar expression」.match(/\b\w{3}/g)/[[reg],[exp]]
{min,max}
マッチングモードの中間出現回数がminとmaxの間の情報 ,maxを省略すると、最大回数がないことを意味します.
(pattern)
キャプチャモード>「reglar expression」.match(/(r)/g,'$1' //rreglarr expression>「reglar expression」.match(/(r)/g,「$2$1」) //erglar expression
(?:pattern)
これはキャプチャモードではありません.マッチング列を$1、$2などのパラメータで記録することができません.
上記は「JavaScriptオブジェクト向けプログラミングガイド」付録の30種類の正則マッチングモードであり、直接量文字、文字類、複製、参照パケットの選択、およびマッチング位置の指定ができます.
その中にはいくつかの等価関係があります.
\wは[A-Za-z 0-9_]に相当します.
\dは[0-9]に相当し、
\Dは[^0-9]または[^\d]に相当します.
この正則を記録してモードに合わせて、後で自分で使う必要があります.