正则表达式:如何在URL和其他内容之间进行匹配

本文关键字:之间 其他 URL 正则表达式 | 更新日期: 2023-09-27 18:17:16

我挖出了一个正则表达式,可以在识别URL时解决问题。在这里:

Regex regex = new Regex("http://([''w+?''.''w+])+([a-zA-Z0-9''~''!''@''#''$''%''^''&''*''('')_''-''=''+''''''/''?''.'':'';''''',]*)?", RegexOptions.IgnoreCase);

我接下来需要做的是匹配标识的 URL 和其他一些字符(最好是换行符(之间的所有内容。

因此,如果我有这样的文本块...以网址结尾,例如 它即将,我希望整个文本块消失。 http://checkoutmysite.com。

应该什么都没有,因为正则表达式会将所有内容向后匹配到最近的换行符,然后将其全部取出。

我已经尝试了一两件事,但似乎无法得到它。

正则表达式:如何在URL和其他内容之间进行匹配

  1. 使用逐字字符串@"Regexstring",优点是,不需要双重转义。所以例如 Regex regex = new Regex(@"'w+");很好。

  2. 字符
  3. 类中的大多数字符不需要转义。

    Regex regex = new Regex(@"http://(['w+?.'w+])+([a-zA-Z0-9~!@#$%^&*()_'-=+''/?.:;',]*)?", RegexOptions.IgnoreCase);
    

    应该和你的一样。

  4. 如果您想在正则表达式之前删除某些内容,直到之前的换行符,请在模式周围放置一个.*和括号,然后替换为$1

    Regex regex = new Regex(@".*(http://(['w+?.'w+])+([a-zA-Z0-9~!@#$%^&*()_'-=+''/?.:;',]*)?)", RegexOptions.IgnoreCase);
    

    然后regex.replace $1作为替换字符串。