2016-07-22 11 views
-1

{{と}}で囲まれたテキスト変数を持つテキストテンプレートがあります。テキストプレースホルダを正規表現に置き換えてください

"{{と}}"を含むすべての一致を私に与えるには正規表現が必要です。

たとえば、テキストに{{FirstName}}がある場合、{{FirstName}}を実際の変数に置き換えるために一致として戻したいと考えています。

私はすでにINSIDE {と}がある正規表現を見つけましたが、私が望むものを返すためにそれをどのように変更できるのかわかりません。

/\{([^)]+)\}/ 
+0

C#は[ 'java.lang.Stringで#replace']と同様の機能を持っています(https://docs.oracle.com/javase /8/docs/api/java/lang/String.html#replace-java.lang.CharSequence-java.lang.CharSequence-)? – dorukayhan

答えて

2

このパターンは、トリックを行う必要があります:たぶん

string str = "{{FirstName}} {{LastName}}"; 

Regex rgx = new Regex("{{.*?}}"); 

foreach (var match in rgx.Matches(str)) 
{ 
    // {{FirstName}} 
    // {{LastName}} 
} 
+1

より良い代替案は 'Regex rgx = new Regex(" {{* *}} ");'であり、中括弧の中の文字列が巨大であれば、 'Regex rgx = new Regex –

0

alert(/^\{{2}[\w|\s]+\}{2}$/.test('{{FirstName}}'))

^を:初めに。

$:最後に。

\{{2}:文字{ 2回。

[\w|\s]+:アルファベット文字または空白を1回以上。

\}{2}:文字} 2回。

UPDATE:

alert(/(^\{{2})?[\w|\s]+(\}{2})?$/.test('FirstName'))

+0

これは、** whole ** stringが['{{..}のようなものである場合にのみ一致します。{{[^}] *(?:}) ..}} '](https://regex101.com/r/vC6bQ2/1) – tchelidze

+0

@tchelidzeだから、私がダウンボートになっている理由は? –

+0

更新された正規表現**のみ** [最後のオカレンス](https://regex101.com/r/vC6bQ2/2)と一致します。 (*部分的に) – tchelidze

関連する問題