繁体   English   中英

正则表达式在多个方括号内返回内容

[英]Regex returning content within multiple square brackets

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

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

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

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

您可以使用字符 class ,例如:

[^\]]

匹配方括号外的任何字符。

所以这应该适合你:

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

最好是这样:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM