当前位置: 首页 > 知识库问答 >
问题:

与URL匹配的正则表达式(特定域除外)

羿博延
2023-03-14
^(https?:\/\/)?([\da-zA-Z\.-]+)\.([a-zA-Z\.]{2,6})([\/\w \.-]*)*\/?$

我用这个过滤聊天中的消息,我用C#来做这件事。这里有一个工具,如果你想进一步挖掘:http://regexr.com/3faji

C#扩展方法:

static class String
{
    public static string ClearUrl(string text)
    {
        Regex regx = new Regex(@"^(https?:\/\/)?([\da-zA-Z\.-]+)\.([a-zA-Z\.]{2,6})([\/\w \.-]*)*\/?$",
        RegexOptions.IgnoreCase);
        string output = regx.Replace(text, "*");

        return output;

    }
}

共有1个答案

华知
2023-03-14

您可以在regex中使用负lookahead来避免匹配某些域:

^(https?:\/\/)?(?!(?:www\.)?google\.com)([\da-zA-Z.-]+)\.([a‌​-zA-Z\.]{2,6})([\/\w .-]*)*\/?$

否则:

^(https?:\/\/)?(?!.*google\.com)([\da-zA-Z.-]+)\.([a‌​-zA-Z\.]{2,6})([\/\w .-]*)*\/?$
 类似资料:
  • 有没有人试图描述与正则表达式匹配的正则表达式? 由于重复的关键字,这个主题几乎不可能在网上找到。 它可能在实际应用程序中不可用,因为支持正则表达式的语言通常具有解析它们的方法,我们可以将其用于验证,以及一种在代码中分隔正则表达式的方法,可用于搜索目的。 但是我仍然想知道匹配所有正则表达式的正则表达式是什么样子的。应该可以写一个。

  • 我有一根线,比如: 如何匹配每行的最后一个?顺便说一句,这是我试图在Sublime的文本中做到的。这些值不一致,就像我在这里看到的,我有几百行要替换。 我尝试了,但这与相匹配。

  • 我试图创建一个匹配特定模式的正则表达式,但我想忽略以开头的行。我怎么做? 如果一行不是以哈希开头,它应该被使用,就像我想要阻止攻击性语言一样,在这种情况下,它应该被覆盖。

  • 问题内容: 我想检查一个字符串是否匹配1-2个字母,1-4个数字和1个字母的模式。(例如: CC44C , C4444C )。 我知道这将完全匹配2个字母,4个数字和1个字母的模式。(例如: CC4444C ) 但是,如何使它与范围(即1-2个字母,1-4个数字)匹配的模式呢? 我已经尝试过,但是它给了我以下错误: 问题答案: 您需要将{1-2}更改为{1,2},您可以理解为{minimun,ma

  • 本文向大家介绍匹配URL的正则表达式(推荐),包括了匹配URL的正则表达式(推荐)的使用技巧和注意事项,需要的朋友参考一下 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。 则表达式: 匹配: (1)、直接匹配域名地址: (2)、匹配链接含(*.htm,*.html,*.ph

  • 本文向大家介绍匹配 IP 地址与域名的正则表达式,包括了匹配 IP 地址与域名的正则表达式的使用技巧和注意事项,需要的朋友参考一下 一个完整的域名,由根域、顶级域、二级、三级……域名构成,每级域名之间用点分开,每级域名由字母、数字和减号构成(第一个字母不能是减号),不区分大小写,长度不超过63。 单独的名字可以由正则表达式[a-zA-Z0-9][-a-zA-Z0-9]{0,62}来匹配,而完整的域