|
|
路过的小熊猫 · 我玩梗贼6攻略夜跑惊魂-抖音· 1 年前 · |
|
|
耍酷的枕头 · 斗鱼:禁封主播陈一发儿直播间,对所有主播启动 ...· 1 年前 · |
|
|
会搭讪的石榴 · 如何快速安装并登录ossbrowser_对象 ...· 2 年前 · |
|
|
开心的地瓜 · vivo进军支付,发布vivo Pay,5G ...· 2 年前 · |
|
|
重情义的红豆 · 黑暗骑士漫画 - 抖音· 2 年前 · |
最近,我制作了一个脚本,在脚本中,我希望从带有节点的txt文件中删除一个 完全匹配的 。它的打印结果为true,但实际上并没有从txt文件中删除该行。我是用不和来引起争论的。我不知道我做错了什么,但这是我的剧本:
const fs = require('fs')
fs.readFile('notredeemed.txt', function (err, data) {
if (err) throw err;
if (data.toString().match(new RegExp(`^${args[0]}$`, "m"))) {
fs.readFile('notredeemed.txt', 'utf8', function (err,data) {
if (err) {
return console.log(err);
var result = data.replace(/${args[0]/g, '');
fs.writeFile('notredeemed.txt', result, 'utf8', function (err) {
if (err) return console.log(err);
console.log("true")
如果有人能帮我,我会很感激的:)
发布于 2022-07-04 17:58:49
我认为你可以和你现在的解决方案非常相似,只是正则表达式有点差。
我使用两个捕获组作为一行的分隔符,而不是仅仅使用
^
和
$
来指示整个字符串以
args[0]
开头和结尾。
这一个匹配任何换行符或字符串的开头。适用于第一行文件,并防止部分替换,例如
llo
替换
Hello
(\n|^)
这个匹配一个回车或字符串的末尾。这适用于文件末尾没有换行符的情况,也可以防止
Hel
替换
Hello
。
(\r|$)
这应该确保你总是拿出一整条与你的args相匹配的行。
我还消除了第二个
readFile
,因为没有必要让它开始工作。
const fs = require("fs")
fs.readFile("notredeemed.txt", function (err, data) {
if (err) throw err
const match = new RegExp(`(\n|^)${args[0]}(\r|$)`)
const newFile = data.toString().replace(match, ``)
fs.writeFile("notredeemed.txt", newFile, "utf8", function (err) {
if (err) return console.log(err)
console.log("true")
})
发布于 2022-07-04 17:27:08
这是我的解决办法。
算法:
使用所需的行旗(通常是
"\r\n"
)
const replacingLine = "- C/C++ addons with Node-API";
const fileContent = `- V8
- WASI
- C++ addons
- C/C++ addons with Node-API
- C++ embedder API
- C/C++ addons with Node-API
- Corepack`;
const newFileContent = replace({ fileContent, replacingLine });
console.log(newFileContent);
|
|
路过的小熊猫 · 我玩梗贼6攻略夜跑惊魂-抖音 1 年前 |
|
|
开心的地瓜 · vivo进军支付,发布vivo Pay,5G时代带来更多新可能? 你有多久没有打开钱包使用现金付款了?一周?一个月?甚至一年?从2013年开始,藉由滴滴、 美团 外卖等平台的补贴大战,在... - 雪球 2 年前 |
|
|
重情义的红豆 · 黑暗骑士漫画 - 抖音 2 年前 |