Javascript正则表达式匹配两个字符串之间的子串,但子字符串可以包含DOT(。)

时间:2015-02-28 00:15:58

标签: javascript regex

我确实希望匹配{{}}

之间的所有子字符串

当此子字符串不包含.时,正则表达式正常工作:

"When he come, {{person}} will give his son {{something}}".match(/{{(\w*)}}/g) ; 

结果:

  

[" {{person}}"," {{something}}"]

现在,如果此子字符串包含.(点),则正则表达式不会按预期工作:

"When he come, {{person.firstname}} will give his son {{something}}".match(/{{(\w*)}}/g) ;

结果:

  

[" {{东西}}"]

如何将正则表达式更改为能够使用子字符串包含DOT,例如:person.firstname。 ?

2 个答案:

答案 0 :(得分:3)

或使用此模式匹配{{}}

之间的任何内容
{{([^}]*)}}

说明:

[^}] a character class, anything but "}"

答案 1 :(得分:1)

\w仅匹配a-z, A-Z, 0-9, _,参见http://www.w3schools.com/jsref/jsref_regexp_wordchar.asp

使用此正则表达式也包括任意数量的点:

/{{([\w\.]*)}}/g