Regex, чтобы добавить слово перед существующим словом в узле - PullRequest
0 голосов
/ 16 июня 2019

Цените любую помощь по написанию регулярного выражения nodejs.

Сначала найдите точные слова "ChildBucketOne" и "ChildBucketTwo" и добавьте точное слово ParentBucket перед каждым появлением ChildBucketOne или / и ChildBucketTwo.

Я пытаюсь использовать одно регулярное выражение.

Input1: webApplication.ChildBucketOne Input2: webApplication.ChildBucketTwo

Вывод: webApplication.ParentBucket.ChildBucket.ChildBucketOne

1010P.ChildBucket.ChildBucketTwo

Спасибо!

Ответы [ 2 ]

1 голос
/ 16 июня 2019

Node.js в основном такой же, как Javascript, за исключением того, что он работает на сервере.

Возвращаясь к вашему вопросу, ниже приведен фрагмент, чтобы найти все вхождения из .ChildBucket и заменить их на .ParentBucket.ChildBucket.

const original = `
# dummy text 1
webApplication.ChildBucketOne
# dummy text 2
webApplication.ChildBucketTwo
# dummy text 3
`

console.log('--- Original ---')
console.log(original)

const replaced = original.replace(/\.ChildBucket/g, '.ParentBucket.ChildBucket')

console.log('--- Replaced ---')
console.log(replaced)

Объяснение

Вы видите, что я использую регулярное выражение (т.е. /\.ChildBucket/g) вместо строки, потому что функция replace по умолчанию заменит только первое вхождение соответствующей строки. Использование регулярного выражения с модификатором g превратит его в глобальное совпадение, которое заменяет все вхождения.

выход

--- Original ---
# dummy text 1
webApplication.ChildBucketOne
# dummy text 2
webApplication.ChildBucketTwo
# dummy text 3
--- Replaced ---
# dummy text 1
webApplication.ParentBucket.ChildBucketOne
# dummy text 2
webApplication.ParentBucket.ChildBucketTwo
# dummy text 3
1 голос
/ 16 июня 2019

Вы можете просто использовать функцию замены строк в JavaScript

let input1 = 'webApplication.ChildBucketOne';
let input2 = 'webApplication.ChildBucketTwo';


function preprocess(input){

 return input.replace('.ChildBucket', '.ParentBucket.ChildBucket.ChildBucket');

}


console.log(preprocess(input1));
console.log(preprocess(input2));

Живи в действии - https://jsitor.com/IUb7cRtvf

...