Warm tip: This article is reproduced from serverfault.com, please click

javascript-正则表达式返回多个方括号内的内容

(javascript - Regex returning content within multiple square brackets)

发布于 2020-11-28 03:00:13

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

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

我想brackets返回["[fgh]", "[mn]"],而不是(ijk)括号之外的内容如何解决?谢谢你。

Questioner
user504557
Viewed
0
costaparas 2020-11-28 11:08:59

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

你可以使用以下字符类:

[^\]]

匹配方括号外的任何字符

因此,这应该为你工作:

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

更好的是:

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

有点整洁,因为从{1,}语义上讲等效于+