Javascript 使用node.js更改文件
我有一个如下所示的文本文件:Javascript 使用node.js更改文件,javascript,node.js,filesystems,fs,Javascript,Node.js,Filesystems,Fs,我有一个如下所示的文本文件: ./4F6cFLnAAFc.png ./4Flj9plmKGQ.png ./4fQeHtSdw80.png ./4I9iibPLdBw.png ./4J-dRA3MGc8.png ./4mdEsouIXGM.png ./4-_-wQc3EGE.png ./595Tiga1gIg.png ./60u_ctp6UIw.png ./64bH_27Ehoc.png ./64_ZfIemRGM.png ./66pQLO--Ghk.png ./69rDtSpshAw.png .
./4F6cFLnAAFc.png
./4Flj9plmKGQ.png
./4fQeHtSdw80.png
./4I9iibPLdBw.png
./4J-dRA3MGc8.png
./4mdEsouIXGM.png
./4-_-wQc3EGE.png
./595Tiga1gIg.png
./60u_ctp6UIw.png
./64bH_27Ehoc.png
./64_ZfIemRGM.png
./66pQLO--Ghk.png
./69rDtSpshAw.png
./69-YUSazuic.png
我想使用node.js将每行开头的
替换为'myString'。因此,每一个最终看起来都像:myString/4F6cFLnAAFc.png
我试图使用正则表达式,但我怀疑它可以通过读写流来实现
var fs = require('fs');
fs.readFile('filelist.txt', 'utf-8', function(err, data){
if (err) throw err;
console.log(typeof(data)); // string
data.replace(/\.\/+/, 'myString');
});
什么正则表达式可以工作,或者使用node编辑此文件的最佳方式是什么?此正则表达式应该可以工作:
/^\(.+)/gm
它对以句点(^\.
)开头的所有行执行全局多行匹配(/gm
),捕获句点((.+)
)之后的任何内容,并使用与捕获的值($1
)串联的“myString”替换整个字符串
根据需要,这里有两个同步或异步选项
var fs = require('fs');
function readWriteAsync() {
fs.readFile('filelist.txt', 'utf-8', function(err, data){
if (err) throw err;
var newValue = data.replace(/^\./gim, 'myString');
fs.writeFile('filelistAsync.txt', newValue, 'utf-8', function (err) {
if (err) throw err;
console.log('filelistAsync complete');
});
});
}
function readWriteSync() {
var data = fs.readFileSync('filelist.txt', 'utf-8');
var newValue = data.replace(/^\./gim, 'myString');
fs.writeFileSync('filelistSync.txt', newValue, 'utf-8');
console.log('readFileSync complete');
}
readWriteAsync();
readWriteSync();
先生,它只替换第一个字符串,我想替换全部(replaceAll()不工作)。。。
var fs = require('fs');
function readWriteAsync() {
fs.readFile('filelist.txt', 'utf-8', function(err, data){
if (err) throw err;
var newValue = data.replace(/^\./gim, 'myString');
fs.writeFile('filelistAsync.txt', newValue, 'utf-8', function (err) {
if (err) throw err;
console.log('filelistAsync complete');
});
});
}
function readWriteSync() {
var data = fs.readFileSync('filelist.txt', 'utf-8');
var newValue = data.replace(/^\./gim, 'myString');
fs.writeFileSync('filelistSync.txt', newValue, 'utf-8');
console.log('readFileSync complete');
}
readWriteAsync();
readWriteSync();