我有一个字符串{{my name}}
,我想在正则表达式中添加空格
var str = "{{my name}}";
var patt1 = /\{{\w{1,}\}}/gi;
var result = str.match(patt1);
console.log(result);
但导致不匹配。
任何解决方案。
答案 0 :(得分:1)
在字符类\w
中添加字符\s
和空格字符[]
,
> var patt1 = /\{\{[\w\s]+\}\}/gi;
undefined
> var result = str.match(patt1);
undefined
> console.log(result);
[ '{{my name}}' ]
上述正则表达式与/\{\{[\w\s]{1,}\}\}/gi
<强>解释强>
\{
- 匹配文字{
符号。
\{
- 匹配文字{
符号。
[\w\s]+
- 在Character类中给出单词字符和空格字符。它匹配一个或多个单词或空格字符。
\}
- 匹配文字}
符号。
\}
- 匹配文字}
符号。
答案 1 :(得分:1)
试试
^\{\{[a-z]*\s[a-z]*\}\}$
说明:
\ { - 匹配文字{symbol。
\ { - 匹配文字{symbol。
[a-z] * - 将匹配零个或多个字符
\ s - 将匹配确切的一个空格
\} - 匹配文字符号。
\} - 匹配文字符号。
如果你想要强制性角色,那么使用+代替*。
答案 2 :(得分:0)
要匹配此模式,请使用此简单的正则表达式:
{{[^}]+}}
demo显示模式匹配和不匹配的内容。
在JS中:
match = subject.match(/{{[^}]+}}/);
要围绕模式进行替换,请使用:
result = subject.replace(/{{[^}]+}}/g, "Something$0Something_else");
解释
{{
匹配您的两个开口大括号[^}]+
匹配一个或多个不是右括号的字符}}
匹配您的两个结束括号