Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Reg expression包含不以.com/.net/etc结尾的intranet站点_C#_Asp.net_Regex - Fatal编程技术网

C# Reg expression包含不以.com/.net/etc结尾的intranet站点

C# Reg expression包含不以.com/.net/etc结尾的intranet站点,c#,asp.net,regex,C#,Asp.net,Regex,我正在使用regexlib生成一个正则表达式,以从字符串中获取url 到目前为止,我有以下几点: message = Regex.Replace(message, @"((http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+ ([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?)", "<a target='_blank' href='$1'>$1</a>"); m

我正在使用regexlib生成一个正则表达式,以从字符串中获取url

到目前为止,我有以下几点:

    message = Regex.Replace(message, @"((http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+
([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?)", "<a target='_blank' 
href='$1'>$1</a>");
message=Regex.Replace(message,@”((http | ftp | https):\/\/[\w\-\\\\+(\.[\w\-\\\\\\\\+)+
([\w\-\,@?^=%&;:/~\+\\]*[\w\-\@?^=%&;/~\+\\\]]),”;
这似乎相当准确,但在两件事上失败了:

  • 如果url的格式是
    www.yahoo.com
  • 我无法让它在内部网站上运行,因此类似于
    http://mysite/Views/Issues/ListView.aspx
    不链接:(
  • 我鄙视正则表达式,真的需要一些帮助。

    怎么样:

    编辑:


    你能把它以返回结果的形式放在c#中吗,像这样:
    data=Regex.Replace(data,@)((http | ftp | https):\/\/\\\\\\\\\\\\\\\\\\\\+([\w\-\,@?^=%&;:/~+\\\\\\\\\\\\\+]*[\w\-\@‌​?^=%&;/~\+#])?”
    不确定您的解决方案将如何考虑到这一点。它有一个正则表达式,正如详细阐述的那样,它基本上涵盖了所有情况。@Cu3PO42-我似乎无法实现这一点,您能不能告诉我,我尝试过的每个字符串文本都返回时没有url表单。因为我无法准确地看到它在您的代码中是如何出现的,所以我无法真正说明这一点t、 我已经成功地使用了它,但这并不重要,因为你已经找到了适合你的东西,是吗?
    resultString = Regex.Replace(subjectString, @"(\b(?:(?:(?:https?|ftp|file)://|www\.|ftp\.)[-A-Z0-9+&@#/%?=~_|$!:,.;]*[-A-Z0-9+&@#/%=~_|$]|((?:mailto:)?[A-Z0-9._%+-]+@[A-Z0-9._%-]+\.[A-Z]{2,6})\b)|""(?:(?:https?|ftp|file)://|www\.|ftp\.)[^""\r\n]+""|'(?:(?:https?|ftp|file)://|www\.|ftp\.)[^'\r\n]+')", "$1", RegexOptions.IgnoreCase | RegexOptions.Multiline);