gpt4 book ai didi

javascript - 如何在正则表达式搜索中使用正斜杠?

转载 作者:行者123 更新时间:2023-12-03 00:18:55 27 4
gpt4 key购买 nike

我正在尝试使用正则表达式查找并替换我的 react 组件中注释之间的所有文本。

这是带有注释的 react 组件的示例:

<Text>{/*text1*/}hey hey hey{/*text1*/}</Text>

如果我更改{/*text1*/},我就可以替换文本至{text1} 。问题是每当我尝试添加 /* */我的正则表达式中的评论的一部分不断添加额外的反斜杠。

下面是我当前的函数,如果我从组件的注释中删除/* 和 */,该函数就会起作用:

async function doIt(fileName, location, replacementText) {
let tempRegex = "(?<={" + location + "})(.*)(?={" + location + "})"
let regex = new RegExp(tempRegex)

await fs.readFile(path.join(__dirname, fileName), 'utf8', function (err, data) {
if (err) throw err
content = data
content = content.replace(regex, replacementText)

fs.writeFile(path.join(__dirname, fileName), content, 'utf8', function (err) {
if (err) throw err
console.log('FILE SAVED')
})
})
}


doIt('change.js', "text1", 'test test')

我的想法是将我的 tempRegex 更改为:

"(?<={/*" + location + "*/})(.*)(?={/*" + location + "*/})"

但它不断添加额外的字符,看起来像这样:

/(?<={\/*textBox1*\/})(.*)(?={\/*textBox1*\/})/

有没有办法添加正斜杠而不添加额外的反斜杠?

最佳答案

正斜杠/是正则表达式中的特殊字符,因为它表示正则表达式的开始和结束。如果您想在 RegExp 中定位正斜杠,则必须对其进行转义。这就是反斜杠的作用。

所以这个正则表达式是无效的:

/{//

虽然这个是有效的:

/{\//

关于javascript - 如何在正则表达式搜索中使用正斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54408693/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com