正则表达式仅匹配值中的第一个字符

时间:2018-08-05 21:08:31

标签: javascript regex

我是正则表达式的新手,一行包含以下字符串。

color=Blue color; age=23; name=John Doe

在此字符串color中是key,它等于某个valueKeyequal operator通过变量分配,并与正则表达式连接。因此只剩下东西,只需匹配value而不匹配semi colon。我的解决方法是

var target = 'color=Blue color; age=23; name=John Doe';
var pattern = 'color=';
var re = new RegExp(pattern + ".+?",'g'); // i.e color=.+?
console.log(target.match(re));

输出:

["color=B"]

它仅匹配一个字符,因为?使量词变得懒惰,但是如果我删除该lazy quantifier,则它将匹配整个目标字符串。如何使模式有用?

1 个答案:

答案 0 :(得分:0)

使用.而不是[^;],而无需使用惰性量词。

var re = new RegExp(pattern + "[^;]+",'g'); 
  • [^;]除了;