我的情况是,我有一串原始文本,我希望在链接开始之前找到所有链接(从Http://
开始)并放置<a href="thelink">
,然后{链接后{1}}。问题是,我不知道链接何时结束。即:
在上面的示例中,我能够找到链接的开头:</a>
但我不知道链接何时结束,所以它还需要http://
。
有人可以对此有所了解吗?我应该使用某种RegEx模式吗?
提前多多感谢。
一切顺利,
博
答案 0 :(得分:3)
根据RegexBuddy使用此作为您的正则表达式
\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[A-Z0-9+&@#/%=~_|]
这是替换语法
<a href="\0">\0</a>
逻辑是查找所有有效的URL字符,并在遇到无效的字符时停止,例如空格或右括号。
如果您还没有尝试过他们的工具,我强烈推荐它。它是一个很好的学习工具,因为它可以剖析正则表达式并将它们转换成简单的英语。
它还附带了一个巨大的有用表达库,例如这个,它非常便宜。