我正在使用Atom的正则表达式搜索和替换功能,而不是JavaScript代码。
我认为这个与JavaScript兼容的正则表达式可以工作(我想匹配后面带有Or rather
的逗号):
(?!\b(Or rather)\b),
?!
=负前瞻
\b
=单词边界
(...)
=搜索整个单词,而不是逐个字符
\b
=单词边界
,
=实际字符。
但是,如果我从“或者”中删除字符,则正则表达式仍然匹配。我很困惑。
答案 0 :(得分:1)
(?!\b(Or rather)\b),
模式等于,
,因为,
不等于O
会导致负向超前总是返回true。
要删除 Atom 中Or rather
之后的逗号,请使用
查找内容:\b(Or rather),
替换为:$1
确保选择.*
选项以启用正则表达式(而Aa
用于区分大小写)。
\b(Or rather),
匹配
\b
-单词边界(Or rather)
-捕获与Or rather
文本匹配并将其保存在内存缓冲区中的组1,可以使用$1
在替换模式下对其进行访问,
-逗号。JS正则表达式演示
var s = "Or rather, an image.\nor rather, an image.\nor rather, friends.\nor rather, an image---\nOr rather, another time they.";
console.log(s.replace(/\b(Or rather),/g, '$1'));
// Case insensitive:
console.log(s.replace(/\b(Or rather),/gi, '$1'));
答案 1 :(得分:1)
答案 2 :(得分:0)
要匹配“或者”后的任何逗号,您可以简单地使用 (或更确切地说)(,),然后使用match [2]
访问第二个组或者替代方案是使用或更确切地说作为一个非捕获组 (?:or)(,),因此第一组将在“或”之后的逗号