我正在尝试创建一个脚本,该脚本应该从node.js文件中删除一些文本。
我有这个文件:
bla bla
bla bla
<script>
this text should be
removed.
export default {
some stuff here
}
</script>
我只想删除<script>
和export default {
之间的所有文字。
注意:我希望同时保留<script>
和export default }
答案 0 :(得分:2)
正则表达式效果很好
str = str.replace(/(.*\<script\>).*(export.*)/, '$1$2');
注意: - 将文件作为字符串读取,如果它的大,则同步读取。
答案 1 :(得分:1)
简单的正则表达式匹配就足够了:
const content = `blah blah
blah blah
<script>
this text should be
removed.
export default {
some stuff here
}
</script>`;
content.replace(/\<script\>([\s\S]*)export/g, '<script>export');
答案 2 :(得分:0)
var lineReader = require('readline').createInterface({
input: require('fs').createReadStream('test_input.txt')
});
const start_marker = '<script>';
const end_marker = 'export default';
var deleteEnabled = false;
lineReader.on('line', function(line) {
if (!deleteEnabled && line.startsWith(start_marker)) {
console.log(line);
deleteEnabled = true;
} else if (deleteEnabled && line.startsWith(end_marker)) {
deleteEnabled = false;
}
if (!deleteEnabled) {
console.log(line);
}
});
这将在命中start_marker时开始删除行,并在命中end_marker时停止删除。