Помощь в создании правильного шаблона регулярных выражений - PullRequest
0 голосов
/ 06 декабря 2018

Мне нужно иметь возможность выбрать значение третьего [] в следующей переменной: land [1] [allow] [3] [allow_type]

Таким образом, мне нужно иметь возможность изменитьот [3] до [4] и т. д.

Шаблон регулярного выражения, к которому мне удалось добраться: [(?:. (?! ([\ d]))) + $

Однако, это выбирает: [3] [allow_type]

Может кто-нибудь помочь с этим?Заранее спасибо.

1 Ответ

0 голосов
/ 06 декабря 2018

Вы можете использовать группы захвата для отслеживания того, что вы выбрали, а затем вставить его обратно в результат замены, используя обратные ссылки:

.replace(/(\[\d+]\[\w+]\[)\d+/, '$14')

См. Демонстрационную версию regex

Обратите внимание, что вы можете заменить \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+]\[).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...