[英]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.