【发布时间】:2018-08-30 19:53:40
【问题描述】:
- 我的输入:
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_]) 范围内的字符与任何其他字符之间的(零宽度)点
这是我的正则表达式:
?\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)
【问题讨论】:
-
我会使用
\s转义字符作为空格字符,因为它可以更明确地看到它是正则表达式开头的空格(而不是错误的空格)。 -
为什么不简单地将
^.*]\s?用于您的正则表达式? JSFiddle. -
@AminNAIRI 我想删除所有 Fwd: 没有与其他字符串文本连接的所有文本字符串以及方括号之间的所有文本字符串,您的示例只需删除方括号和字符串括号之前的字符串跨度>
-
@MokiNex 好的,所以在你的问题中添加这个约束,否则,通过删除 i 标志,你会得到预期的输出
标签: javascript regex