【问题标题】:Regular Expression only returning first result found [duplicate]正则表达式仅返回找到的第一个结果[重复]
【发布时间】:2012-10-15 23:08:11
【问题描述】:

可能重复:
How can I match multiple occurrences with a regex in JavaScript similar to PHP’s preg_match_all()?

我正在尝试解析这样的 xml 文档:

var str = data.match("<string>" + "(.*?)" + "</string>");
console.log(str);

我想获取数组中[string] 之间的所有元素,但由于某种原因,它只返回找到的第一个string 元素。我不擅长正则表达式,所以我认为这只是一个小的正则表达式问题。

【问题讨论】:

    标签: javascript jquery get


    【解决方案1】:

    你希望它是全局的g

    var str="<string>1</string><string>2</string><string>3</string>"; 
    var n=str.match(/<string>(.*?)<\/string>/g);
     //1,2,3
    

    【讨论】:

    • 完美运行!我知道它会变成那样的小东西。切斯:)
    • g 实际上代表全局。贪心(+ vs. ?)有不同的含义。
    • @Christophe, ops, mybad
    【解决方案2】:

    你必须形成正则表达式,像这样添加一个 g

    /Regex/g

    【讨论】:

      猜你喜欢
      • 2015-08-15
      • 1970-01-01
      • 2015-10-27
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      • 2013-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多