在原始文本字符串中查找链接

时间:2010-01-20 18:50:30

标签: c# string hyperlink

我的情况是,我有一串原始文本,我希望在链接开始之前找到所有链接(从Http://开始)并放置<a href="thelink">,然后{链接后{1}}。问题是,我不知道链接何时结束。即:

  

http://www.mylink.com

在上面的示例中,我能够找到链接的开头:</a>但我不知道链接何时结束,所以它还需要http://

有人可以对此有所了解吗?我应该使用某种RegEx模式吗?

提前多多感谢。

一切顺利,

1 个答案:

答案 0 :(得分:3)

根据RegexBuddy使用此作为您的正则表达式

\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[A-Z0-9+&@#/%=~_|]

这是替换语法

<a href="\0">\0</a>

逻辑是查找所有有效的URL字符,并在遇到无效的字符时停止,例如空格或右括号。

如果您还没有尝试过他们的工具,我强烈推荐它。它是一个很好的学习工具,因为它可以剖析正则表达式并将它们转换成简单的英语。

它还附带了一个巨大的有用表达库,例如这个,它非常便宜。