Редактировать: Было бы очень разумно проверить, окружен ли искомый шаблон кавычками, а затем двоеточием, поскольку образец testreg
может просто встречаться где-то еще.В этом случае мы получаем последний матч, который не является OK .Итак, в конце концов, это:
[\s\S]*?(?<=")(testreg)(?=":)[\s\S]*?
будет идеальным ответом, который мы ищем.
Может быть, здесь мы хотим получить выражение, которое пропустит новые строки,Я не уверен, каким будет желаемый результат, однако мы можем начать тестирование с несколькими опциями, такими как эти выражения:
[\s\S]*(testreg)[\s\S]*
[\w\W]*(testreg)[\w\W]*
[\d\D]*(testreg)[\d\D]*
([\s\S].*?)(testreg)?
Это демо показывает, что мы можем захватить и вернуть желаемое testreg
:
const regex = /[\s\S]*(testreg)[\s\S]*/gm;
const str = `{
"testreg":{
"test1":"test2",
"test3":"test4"
}
}`;
const subst = `$1`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);