2016-07-22 127 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