2011-02-10 110 views
2

对于正则表达式,我绝对愚蠢。我一直在尝试修改以下表达式来匹配以www开头的网址。它已经匹配以http,ftp和https开头的URL,但不仅仅是普通的www。我自己并没有取得太大的成功。任何帮助表示赞赏。正则表达式修改

Regex.IsMatch(text, @"(^(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?)") 

在此先感谢!

+0

您是否试图在自由文本中查找网址? – 2011-02-10 21:38:48

+0

这是一个URL字段(因此^在前面),但我确实在其他地方使用了相同的正则表达式(没有^)来查找自由文本中的URL。 – Chev 2011-02-10 21:40:06

回答

4

使这个......

(http|ftp|https):\/\/ 

这个......

((http|ftp|https):\/\/|www\.) 
1

@Amber提供直接回答你的问题(所以我给它一个+1),但我想指出你应该考虑的另一个事实。

以自由文本方式检测URL并不像人们想象的那么微不足道。 Jeff Atwood在his blog post中表现得非常好。我建议你阅读并了解问题。