为什么这个正则表达式不起作用?

时间:2017-01-13 15:04:43

标签: javascript regex

我试图使用此正则表达式将Cookie拆分为gropus (.*?=.*?); ? 我想要获得的是每个正则表达式组中的cookie。 但它只给了我第一组匹配。

var string = userid=edaa4200-b140-47fd-9db8-b48082a0d0a8; ab_93896527=0;

编辑:我使用exec()功能

var cookies_tuples = /(.*?=.*?); ?/g.exec(string);

可能是什么问题?

3 个答案:

答案 0 :(得分:2)

即使启用了全局标记,您也必须多次调用exec

    var re = /(.*?=.*?);\s?/g;
    var input = "userid=edaa4200-b140-47fd-9db8-b48082a0d0a8; ab_93896527=0;";
    var myArray;
    while ((myArray = re.exec(input)) != null)
    {
      var msg = "Found " + myArray[0];
      console.log(msg);
    }

答案 1 :(得分:1)

只需使用string.match方法,如下所示。如果您使用RegEx.exec,则需要进行迭代才能获得所有匹配项。



var s = "userid=edaa4200-b140-47fd-9db8-b48082a0d0a8; ab_93896527=0;"
var cookies_tuples = s.match(/(.*?=.*?); ?/g);

console.log(cookies_tuples);




答案 2 :(得分:0)

<{>} https://regex101.com/它给了我两个饼干。你讨厌用g-flag

来贪婪地运行它
  • 并且任何人都可以投诉,你需要50个评论的声望,所以我只是写了一个答案;)