繁体   English   中英

如何将方括号内的数字与正则表达式匹配

[英]How do I match a number inside square brackets with regex

我写了一个我期望应该工作的正则表达式,但它没有。

var regex = new RegExp('(?<=\[)[0-9]+(?=\])')

JavaScript 给我错误:

无效的正则表达式 :(/(?<=[)[0-9]+(?=])/): 无效组

JavaScript 不支持前瞻或后视吗?

这应该有效:

var regex = /\[[0-9]+\]/;


编辑:使用分组运算符来定位数字:

 var regex = /\\[([0-9]+)\\]/;

使用此表达式,您可以执行以下操作:

 var matches = someStringVar.match(regex); if (null != matches) { var num = matches[1]; }

支持前瞻,但不支持后视。 你可以接近,有点诡计。

要以以下形式递增多个数字,请说:

var str = '/a/b/[123]/c/[4567]/[2]/69';

尝试:

str.replace(/\[(\d+)\]/g, function(m, p1){
 return '['+(p1*1+1)+']' }
)

//Gives you => '/a/b/[124]/c/[4568]/[3]/69'

如果您要引用 RegExp,请注意双转义反斜杠。

暂无
暂无

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

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