1

正規表現全体を構成するために正規表現からのサブ結果を使用することは可能ですか?このスニペットを検討してください:

var ret = "{hello} {world}";
ret = ret.replace(/(^|[^{}])(\{|\})([^{}]|$)/g, '$1$2$2$3');
ret; // {{hello}} {{world}}

しかし、私がまとめる}{と、上記の正規表現は失敗します。これは、文字列のいずれも、}{または文字列の先頭に対してテストし{}、次にいずれ{}かの文字列または文字列の最後に対してもテストしているため、意味があります。

var ret = "{hello}{world}";
ret = ret.replace(/(^|[^{}])(\{|\})([^{}]|$)/g, '$1$2$2$3');
ret; // {{hello}{world}}

最初の結果セットを使用して2番目を作成し、次に3番目を作成することは可能ですか:

/(^|[^{}])($1)([^{}]|$)/g, '$1$2$2$3'
//         $1 - or something similarly

乗算·replaceメソッド呼び出しを使用できることは承知していますが、1 つだけでもクールです。

ありがとう


コードの可読性を考慮しないでください。

4

2 に答える 2

1

この 1 つの正規表現は役に立ちますか?

ret.replace(/[{]+(.*?)[}]+/g, '{{$1}}')

ps:あなたが何を達成しようとしているのか正確にはわかりません。

于 2013-07-11T11:55:06.390 に答える
1

後方参照、たとえば、\1探しているもののように聞こえます (質問を正しく理解した場合)。

于 2013-07-11T11:32:49.237 に答える