2016-09-26 7 views
-3

Javascriptの正規表現のテスト

「私たちは$ 0食べる必要があります$ 1 $日あたり$メロン "

+0

をあなたは正規表現を必要とするあなたは確かにいますか?置き換えたい場合は、単純な文字列パターンを使用します。 – Filburt

+0

変数 'someSingleCharacter'はどのようなものになり、あなたのサンプル文字列の目的の出力が一致しますか?あなたの質問はこれを知らなくても答えられないようです。 – Filburt

答えて

1

あなたの正規表現は次のようになります。

/\$.\$/g 
ここ

.は、改行を除く任意の文字です。あなたも改行文字を一致させたい場合は、それはあまりにも$$$に一致すること

/\$(?:.|\n)\$/g 

注意を使用しています。あなたはそれがあなたが要求していないが、私はあなたがこのような何かしたいかなり確信している、しかし

/\$[^\$]\$/g 

を使用しないようにしたい場合:

function replace(str, ...values){ 
    return str.replace(/\$\d+\$/g,() => values.shift()); 
} 

var exampleStr = 'We need to eat $0$ melons per $1$ days.'; 
var replaced = replace(exampleStr, 'one', 'two'); 

console.log(replaced); 
+0

これはすべて正規表現として動作しますが、それはまだOPの後ではありません。単純な文字列パターンがある正規表現が必要です。つまり、 'replace"( "$" + "0" "" "123") ' @Filburt。 – Filburt

+0

私はあなたが間違っていると思う。彼の例を見れば、彼は2つの異なったパターンを持っています。また、文字列を 'String.prototype.replace'関数の最初の引数として渡すと、最初の出現箇所だけが置換されます。 –

+0

もちろん、2つの異なるパターンを同じ値に置き換えたいのはなぜですか?いずれにしても、OPが彼の例に望ましい出力を出さない限り、典型的なXY問題です。 @フィルバート。 – Filburt

0

使用する正規表現は\$(.)\$です。

2つの$の中に1文字(.)を探します。

+0

間違っています。 OPが言ったように、彼はドル記号の間で1文字だけを一致させたい。 –

+0

...そうではなく、\ $( "+ 0 +")\ $ "'や\ "(\ 1 +")\ $ "' – Filburt

+0

...実際の作業のために正規表現は必要ありません。 – Filburt