Javascript 替换为JS中的正则表达式
我有一个由多个下划线组成的文件。我需要将它们全部转换为单下划线 如何在节点中执行此操作 我当前的解决方案:Javascript 替换为JS中的正则表达式,javascript,node.js,Javascript,Node.js,我有一个由多个下划线组成的文件。我需要将它们全部转换为单下划线 如何在节点中执行此操作 我当前的解决方案: var fs = require("fs"); filename = "questions.txt"; ofilename = "o.txt"; fs.readFile(filename, "utf8", function (err, data) { if (err) { return consol
var fs = require("fs");
filename = "questions.txt";
ofilename = "o.txt";
fs.readFile(filename, "utf8", function (err, data) {
if (err) {
return console.log(err);
}
var result = data.replace(/_+/g, "_");
fs.writeFile(ofilename, result, "utf8", function (err) {
if (err) return console.log(err);
});
});
这给了我一个文件,其中所有内容都是二进制的。您的代码运行良好
var fs = require("fs");
filename = "./questions.txt";
ofilename = "o.txt";
fs.readFile(filename, "utf8", function (err, data) {
if (err) {
return console.log(err);
}
console.log(data);
var result = data.replace(/_+/g, "_");
fs.writeFile(ofilename, result, "utf8", function (err) {
if (err) return console.log(err);
});
});
- 产生:
- 发件人:
确保输入文件是utf8编码的。当我运行itI时,输出是这样的,我不确定输入文件是否是utf8。它只是一个txt文件。我还可以使用什么其他格式?显示您的输入文件编码(在ide的右下角),上面写着utf16leSo单击它,选择“使用编码保存”并选择“utf8”,假设您使用的是VSCODE,您可以在不使用JS的情况下执行此操作,在terminal
sed's/\uuu*/\ ug/questions.txt中使用sed
保存到文件sed's/\u*/\ ug/test.txt>o.txt
或-i
修改文件sed-i's/\u*/\ ug/test.txt
@JacekRojek抱歉,这可能是一个编码问题。这在utf16上给了我同样的结果。但在更改为utf8时,一切都正常。
toto
_
_
rr
toto
__
__
rr