这是我的字符串:
Organization 2
info@something.org.au more@something.com market@gmail.com single@noidea.com
Organization 3
headmistress@money.com head@skull.com
这也是我的模式:
/^.*?@[^ ]+|^.*$/gm
正如您在demo中看到的那样,模式符合以下条件:
Organization 2
info@something.org.au
Organization 3
headmistress@money.com
我的问题:如何让它反转?我的意思是我想要匹配这个:
more@something.com market@gmail.com single@noidea.com
head@skull.com
我该怎么做?实际上我可以编写一个新的(和完全不同的)模式来获取预期的结果,但我想知道,“反转模式的结果”可能吗?
答案 0 :(得分:3)
不,我不相信有一种方法可以直接反转正则表达式,但保持不变。
但是,通过使用现有的RegExp将其匹配替换为空字符串,您可以获得与之相近的内容:
var everythingThatDidntMatchStr = str.replace(/^.*?@[^ ]+|^.*$/gm, '');
答案 1 :(得分:1)
您可以使用RegExp
替换第一个Array.prototype.forEach()
的匹配项,以使用`String.ptototype.replace();
RegExp
替换为空字符串
var re = str.match(/^.*?@[^ ]+|^.*$/gm);
var res = str;
re.forEach(val => res = res.replace(new RegExp(val), ""));