如何在JavaScript中删除特定行,包括其换行符?

时间:2018-11-17 16:42:04

标签: javascript regex

这是我的代码:

console.log("before:");
let str = "aaa bbb\nbbb ccc\naaa bbb\b";
console.log(str);
console.log("after:");
console.log(str.replace(/^bbb.*$/gm, ''));

我需要这样的输出:

before:
aaa bbb
bbb ccc
aaa bbb
after:
aaa bbb
aaa bbb

我试图这样做:

console.log(str.replace(/^bbb.*[\r|\n]$/gm, ''));

但是没有帮助。考虑到我只需要删除(以bbb开头的行),该怎么做?

4 个答案:

答案 0 :(得分:2)

只需在正则表达式模式末尾添加a = ['1', '2', '3'] print(sum([int(i) for i in a])) 即可选择换行符。因此模式应更改为\n

/^bbb.*$\n?/gm

答案 1 :(得分:1)

正则表达式只需进行调整:

str.replace(/^bbb.+\n/gm, '');

作品:

console.log("before:");
let str = "aaa bbb\nbbb ccc\naaa bbb\b";
console.log(str);
console.log("after:");
console.log(str.replace(/^bbb.+\n/gm, ''));

答案 2 :(得分:0)

使用它代替最后一行:

console.log("before:"); let str = "aaa bbb\nbbb ccc\naaa bbb\n"; console.log(str); console.log("after:"); console.log(str.replace(/^bbb.*$\n?/gm, ''));

答案 3 :(得分:0)

输出中的空行由\n生成。因此,要删除它,只需将\n替换为''

console.log("before:");
let str = "aaa bbb\nbbb ccc\naaa bbb\b";
console.log(str);
console.log("after:");
console.log(str.replace(/bbb\s\w+\n/, ''));

因为有一个包含bbb的子字符串,后跟一个空格,一些字母字符和\n,所以我们不需要使用开头({ {1}}),结尾(^)。只需替换匹配的子字符串。 $也可以删除。