Fwd: [ProQuest Alert] test fwd:TestFwd: test2fwd: fwd:test3 Fwd: fwd:
test fwd:TestFwd: test2fwd: fwd:test3
test TestFwd: test2fwd: test3
我想删除单词Fwd:
和[ProQuest Alert]
(方括号之间的字符串)而不是Fwd:这是字符串文本的一部分
说明:
\[(.*?)\]
- >在方括号之间提取文本(全局正则表达式)
\b
表示单词边界,它是“单词字符”([A-Za-z0-9_]
)范围内的字符与任何其他字符之间的(零宽度)点
这是我的Regexp:
?\b(Fwd:)|\[(.*?)\] ?
演示:https://regex101.com/r/qlTpWb/7
var str = "Fwd: [ProQuest Alert] test fwd:TestFwd: test2fwd: fwd:test3 Fwd:";
str = str.replace(/ ?\b(Fwd:)|\[(.*?)\] ?/gi, ' ');
console.log(str)
答案 0 :(得分:1)
一种解决方案是匹配您不想要的内容以及捕获您想要删除的内容:
keep_me1|keep_me2|(delete_me)
<小时/>
由于不支持lookbehinds和(*SKIP)(*FAIL)
,您需要一些编程功能:
let data = 'Fwd: [ProQuest Alert] test fwd:TestFwd: test2fwd: fwd:test3 Fwd: fwd:';
let regex = /\w+:\w+|(\[[^\[\]]+\]|\bFwd:)/gi
data = data.replace(regex, function(match, group1) {
if (typeof(group1) == "undefined") {
return match;
} else {
return '';
}
});
console.log(data);
答案 1 :(得分:1)
这个正则表达式?
var str = "Fwd: [ProQuest Alert] test fwd:TestFwd: test2fwd: fwd:test3 Fwd:";
str = str.replace(/\b(Fwd:)(\s|$)|\[(.*?)\]/gi, ' ');
console.log(str)
我只在regex101.com上试过。