2016-07-22 69 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}:Character { 2次。

[\w|\s]+:字母字符或空格1次或多次。

\}{2}:Character } 2次。

UPDATE:

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

+0

只有**整個**字符串類似[[{{.. ..] ..}}'](https://regex101.com/r/vC6bQ2/1) – tchelidze

+0

@tchelidze那麼,這是我得到downvote的原因? –

+0

只更新了正則表達式**匹配[最後一次出現](https://regex101.com/r/vC6bQ2/2)。 (*部分*) – tchelidze