我需要能够在以下变量中选择第三个[]的值: 土地[1] [许可证] [3] [许可证类型]
因此,我需要能够将[3]更改为[4]等。
我设法达到的正则表达式模式是: [(?:。(?!([\ d])))+ $
但是,正在选择:[3] [permit_type]
有人可以帮忙吗?预先感谢。
答案 0 :(得分:1)
您可以使用捕获组来跟踪匹配的内容,然后使用反向引用将其粘贴回替换结果中:
.replace(/(\[\d+]\[\w+]\[)\d+/, '$14')
请参见regex demo
请注意,您可以将\d+
和\w+
替换为[^\][]*
以匹配任何0+个字符,但如果内容可能包含任何类型的字符,则]
和[
字符,但是[
和]
。
var s = "land[1][permit][3][permit_type]";
console.log(s.replace(/(\[\d+]\[\w+]\[)\d+/, '$14'));
要替换前括号中的值,可以使用
var s = "land[1][permit][3][permit_type]";
console.log(s.replace(/(\[)\d+(]\[\w+]\[)\d+/, '$12$24'));
$1
是指第一个捕获组(\[)
捕获的值,而$2
是指第二个捕获组(]\[\w+]\[)
捕获的值。 / p>