javascript - 仅匹配 JavaScript 正则表达式中方括号中的数字,而不匹配前一个单词

标签 javascript regex

我在 JavaScript 中有以下正则表达式。我试图仅匹配字符串中方括号内的第一个数字,因为我必须替换它。 这是我的代码。

var str = 'dgt_gallery_item[3][type]'; 
var res = str.match(/^\w+\[(\d+)\]/g);
var rep = str.replace(/^\w+\[(\d+)\]/g, 5 + 1);

这个想法是从 1 个或多个字母数字字符开始匹配,然后 [,然后开始捕获 1 个或多个数字,然后]。

我查看了regex 101我的代码看起来是正确的,但是当我在浏览器中测试它时,它也匹配第一个单词。我怎样才能跳过它?

enter image description here

最佳答案

您可以使用此正则表达式:

var rep = str.replace(/(?!\[)\d/, (5+1));
<小时/>

Regex live here

解释:

(?!\[)   # the number must be preceded by one '[' character
         # without taking it
\d       # takes a one digit number .. 
         # you can use '\d+' to multiple digits number

关于javascript - 仅匹配 JavaScript 正则表达式中方括号中的数字,而不匹配前一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31438766/

相关文章:

javascript - 为什么这个 javascript 函数在括号内?

javascript - 将 String 类型转换为 slug 类型以保证 io 的完整性

java - 使用 split 和正则表达式来分析模式

java - 解释 Java 字符串

java - 带短语替代的正则表达式

regex - 使用 sed 在字符串中附加字符串值

javascript - 使用外部库的成本是多少?

javascript - 无法让 Bootstrap-vue 表单验证工作

javascript - 在 js 变量中获取 Brightcove 视频的视频静态 URL

javascript - 正则表达式,分组常量字符串