2017-01-24 10 views
-3

この場合、[]と()の違いは何ですか?Javascript Regex

var str = "Hel?lo the?re , Woul?d you like some ice?cream?"; 
 
var rExp = /[?+]/ig; 
 
var rExp2 = /(\?+)/ig; 
 

 
console.log(str.replace(rExp, "")); 
 
console.log(str.replace(rExp2, ""));

私はまた、あなたが同様に+を含む文字列を持つ2つの正規表現をチェックすることができ、他の

+1

文字クラスと捕捉基 –

+0

第二つ 'ヘル???? lo'と一致し、最初のものは' [?+] '、単一文字に一致しません – Toto

+1

? 'または' + '。 '(\?+)'は1つ以上の '?'シンボルと一致します。必要なものを選択してください。あなたの必要に応じて。 –

答えて

0

を使用する際の説明を得ることができます。

最初の正規表現[?+]/igは、文字クラス[]?+と文字通り検索します。

+は、charcterクラスの内部で量指定子として機能しません。

数値クラスは、文字クラス[?]+の後ろに置かなければなりません。これは、1つ以上の疑問符がないと見なします。

第2の正規表現では、グループ構造()を使用し、1つのエスケープ文字?と限定子+を使用します。

正規表現は両方とも、鈍感なiとグローバルgに対して同じフラグを共有します。

var str = "Hel?lo t+he?re , Wo+ul?d you like some ice?cre+am?"; 
 
var rExp = /[?+]/ig; 
 
var rExp2 = /(\?+)/ig; 
 

 
console.log(str.replace(rExp, "")); 
 
console.log(str.replace(rExp2, ""));