协助创建正确的正则表达式模式

时间:2018-12-06 14:36:25

标签: jquery regex

我需要能够在以下变量中选择第三个[]的值: 土地[1] [许可证] [3] [许可证类型]

因此,我需要能够将[3]更改为[4]等。

我设法达到的正则表达式模式是: [(?:。(?!([\ d])))+ $

但是,正在选择:[3] [permit_type]

有人可以帮忙吗?预先感谢。

1 个答案:

答案 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>