【问题标题】:Regex returning content within multiple square brackets正则表达式在多个方括号内返回内容
【发布时间】:2020-11-28 03:00:13
【问题描述】:

我正在使用带有 JavaScript 的 Regex,并希望在以下字符串中返回方括号内的内容(包括括号本身):

var str = '##abde[fgh]ijk[mn]op';
var brackets = str.match(/\[.{1,}\]/g); //["[fgh]ijk[mn]"]

我希望 brackets 返回 ["[fgh]", "[mn]"],而不是括号外的内容 (ijk)。如何解决这个问题?谢谢。

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    这里的问题是. 匹配任何字符(包括方括号)。

    您可以使用如下字符类:

    [^\]]
    

    匹配任何字符除了方括号。

    所以这应该适合你:

    str.match(/\[[^\]]{1,}\]/g);
    

    最好是这样:

    str.match(/\[[^\]]+\]/g);
    

    因为{1,} 在语义上等同于+,所以它更简洁一些。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      相关资源
      最近更新 更多