2017-01-04 10 views
2

このRegExpは母音に続く母音を私に与えます。私はCVCVCVのような何かを得るためにこれを可変回数繰り返すことを望んでいます。複数の子音 - 母音シーケンスに一致する

var regEx1 = new RegExp(/\b[b-df-hj-np-tv-z][aeiou]/); 

どのように私は[b-df-hj-np-tv-z][aeiou]が変数になるようにこれを書いてnew RegExpに挿入されていますか?

は、私はこれを試してみましたが、それは働いていない:

var consonant = "[b-df-hj-np-tv-z]"; 
    var vowel = "[aeiou]"; 
    var regEx1 = new RegExp(/\b + consonant + vowel +/); 
+0

正規表現のリテラル表記で変数を使用することはできません。いくつかの文字列操作を行い、それを 'RegExp'のパラメータとして渡す必要があります。 (Btw、 '/.../ 'で正規表現の表記法を使用している場合は、' RegExp'コンストラクタを使う必要はありません) – 4castle

+1

正規表現で必要なのは、それらの2文字クラスを繰り返します。 – 4castle

+0

あなたは、「母音の後ろに何度も母音をくりかえしたい」と言っていますが、CVCVCの例はそのパターンに従わず、母音の後に母音が2回続き、続いて子音が続きます。あなたは本当にCVCVCとマッチしたいのですか、それともCVCVCVのタイプミスですか?ちなみに、「可変回数」とは、一定回数または任意の回数を意味しますか? –

答えて

4

グループ化と数量を使用することにより、あなたがこれを達成することができます。

(x)xと一致し、一致を覚えています。

x {n}ここで、nは正の整数です。前の項目xのn回の出現に正確に一致します。 CVCVCVCVCVCVCVCVCVCVCVCV 0回以上

var regEx1 = /\b([b-df-hj-np-tv-z][aeiou]){12}/; 

:(CVCVCVCV ...)

var regEx1 = /\b([b-df-hj-np-tv-z][aeiou])*/; 

より12倍と一致するCVCVCV

var regEx1 = /\b([b-df-hj-np-tv-z][aeiou]){3}/; 

:3回一致する

情報: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

更新日:

あなたのコメントに基づいて、これはあなたが探しているものですか?

var count = 3; 
var consonant = '[b-df-hj-np-tv-z]'; 
var vowel = '[aeiou]'; 
var regEx1 = new RegEx('\\b(' + consonant + vowel + '){' + count + '}'); 
+1

'n'は実際には変数ではないことに注意してください。あなたはそこに実際の番号を入れなければなりません。 – 4castle

+0

@ 4castleなので、 'n'は5に等しい変数ではありませんか? –

+0

私は量子を使うことができます、ありがとうございます。私の質問は、その量子を変数にする方法です。 –

関連する問題