用正则表达式匹配特定域以将其从文本块中删除

时间:2019-06-01 02:13:11

标签: regex

我不是regex的火箭,一个小时以来一直在拔头发。 我有2个要从文本块中删除的域:

https://www.domaina.com/sports/blabla/
https://www.domainb.com/climbing/moreblabla/

到目前为止,这是我一直在进行的修改,但是我只能设法使domaina完全匹配。

(https?:\/\/www.(?:domaina|domainb)\.com\/[^\s]+)

1 个答案:

答案 0 :(得分:-1)

您的原始表达似乎很好,如果我们希望同时获得两个URL,则可以将其略微修改为:

^(https?:\/\/(www\.)?(domaina|domainb)\.com\/.+)$

Demo

如果我们不想这样做,我们还可以减少额外的约束。我们可能会删除起点和终点锚点:

(https?:\/\/(www\.)?(domaina|domainb)\.com\/.+)

RegEx电路

jex.im可视化正则表达式:

enter image description here

替换

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);