我是正则表达式的新手,一行包含以下字符串。
color=Blue color; age=23; name=John Doe
在此字符串color
中是key
,它等于某个value
。 Key
和equal 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
,则它将匹配整个目标字符串。如何使模式有用?
答案 0 :(得分:0)
使用.
而不是[^;]
,而无需使用惰性量词。
var re = new RegExp(pattern + "[^;]+",'g');
[^;]
除了;