我不是regex的火箭,一个小时以来一直在拔头发。 我有2个要从文本块中删除的域:
https://www.domaina.com/sports/blabla/
https://www.domainb.com/climbing/moreblabla/
到目前为止,这是我一直在进行的修改,但是我只能设法使domaina完全匹配。
(https?:\/\/www.(?:domaina|domainb)\.com\/[^\s]+)
答案 0 :(得分:-1)
您的原始表达似乎很好,如果我们希望同时获得两个URL,则可以将其略微修改为:
^(https?:\/\/(www\.)?(domaina|domainb)\.com\/.+)$
如果我们不想这样做,我们还可以减少额外的约束。我们可能会删除起点和终点锚点:
(https?:\/\/(www\.)?(domaina|domainb)\.com\/.+)
jex.im可视化正则表达式:
const regex = /(https?:\/\/(www\.)?(domaina|domainb)\.com\/.+)/gm;
const str = `https://www.domaina.com/sports/blabla/
https://www.domainb.com/climbing/moreblabla/
https://domaina.com/sports/blabla/
http://domainb.com/climbing/moreblabla/
http://domainc.com/climbing/moreblabla/`;
const subst = `""`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log(result);