首页 > 解决方案 > 正则表达式在节点中的现有单词之前添加一个单词

问题描述

感谢任何帮助编写 nodejs 正则表达式。

首先搜索确切的词“ChildBucketOne”和“ChildBucketTwo”,并在每次出现 ChildBucketOne 或/和 ChildBucketTwo 之前添加确切的词 ParentBucket。

我正在尝试使用一个正则表达式。

输入 1:webApplication.ChildBucketOne 输入 2:webApplication.ChildBucketTwo

输出:webApplication.ParentBucket.ChildBucket.ChildBucketOne

webApplication.ParentBucket.ChildBucket.ChildBucketTwo

谢谢!

标签: javascriptnode.jsnode-modulesnodejs-streamnodejs-server

解决方案


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)

解释

您会看到我使用正则表达式 (ie /\.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

推荐阅读