这应该很容易,但我不知道如何最好地了解它.我有一个WinForms应用程序,让用户键入长的描述.偶尔会输入网址,RichTextBox会识别它们,并在显示时使其可点击.
我将应用程序移动到网络上,我不知道如何使相同的URL可点击.有没有一些半自动的方式将“http://www.google.com”或“www.google.com”转换为可点击的链接?我必须诉诸于RegEx匹配吗?
解决方法
这实际上是一个非常困难的问题.你可以用正则表达式接近但不完美.这里有一个很好的细分潜在的正则表达式模式:
http://www.regexguru.com/2008/11/detecting-urls-in-a-block-of-text/
他列出的最后一个似乎似乎对大多数目的来说足够好:
\b(?:(?:https?|ftp|file)://|www\.|ftp\.) (?:\([-A-Z0-9+&@#/%=~_|$?!:,.]*\)|[-A-Z0-9+&@#/%=~_|$?!:,.])* (?:\([-A-Z0-9+&@#/%=~_|$?!:,.]*\)|[A-Z0-9+&@#/%=~_|$])