gpt4 book ai didi

java - java中如何将纯文本超链接转换为html超链接?

转载 作者:行者123 更新时间:2023-12-02 00:26:51 25 4
gpt4 key购买 nike

任何人都可以建议如何改进下面的正则表达式以轻松地将纯文本超链接转换为java中的html超链接吗?

message = message.replaceAll("(?:https?|http?)://[\\w/%.\\-?&=!#]+(?!.*\\[/)", 
"$0");

实际上我想知道是否可以只检查是否只将通过 http 或 https 找到的任何文本与不带空格的附加文本一起转换,而不是检查这些特殊字符。

我看到一些网站的textareas可以轻松地将纯文本超链接转换为html超链接。但我一直在研究 stackoverflow,但我并没有真正找到关于这个问题的任何完整答案。

我希望java正则表达式能够自动检测链接并将其转换为可点击的html超链接。

|http://naishe.blogspot.com| 
|http://tw.com/#!/someTEXTs|
|http://ts123t1.rapi.com/#!download|13321|1313|fairy_tale.mp4|
|http://www.google.com|
|https://www.google.com|
|google.com|
|google.com|
|google.com/test|
|123.com/test|
|ex-ample.com|
|http://ex-ample.com/test-url_chars?param1=val1&;par2=val+with%20spaces|
https://www.google.com.sg/#hl=en&output=search&sclient=psy-ab&q=test&oq=&aq=&aqi=&aql=&gs_sm=&gs_upl=&gs_l=&psj=1&fp=1&biw=1366&bih=638&bav=on.2,or.r_ gc.r_pw.r_qf.,cf.osb&cad=b

最佳答案

假设 http://www.google.com 应被识别为链接,但 www.google.com 不是,您可以使用如下内容:

String htmlLink = link.replaceAll("(?:https|http)://([\\w/%.\\-?&=!#]+(?!.*\\[/))", 
"<a href=\"$0\">$1</a>");

输出:

http://www.google.com -> <a href="http://www.google.com">www.google.com</a>
www.google.com -> www.google.com

编辑:

可以将表达式简化为如下所示:

String pattern = "(?:https|http)://([^\\s\\|]+)";

此表达式将匹配以 httphttps 开头的任何内容,后跟 :// 以及一系列一个或多个字符不是空格或管道。如果还有其他不允许的字符(我没有检查这些字符的规范),只需将它们列在括号中(在 [^]] 之间)。

关于java - java中如何将纯文本超链接转换为html超链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9825232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com