java 字符串缩短_java-检测并缩短字符串中的所有url

假设我有一个String消息:

我想要一个函数返回String newmessage:

“您应该将file.zip上传到[第一个链接的缩短版本],而不是[第二个链接的简化版本].请重试.”

我已经有了URL缩短器的代码,这是我的URL检测代码,它将替换消息中的第一个URL:

if(message.contains("http://") || message.contains("https://")) {

String regex = "(?i)\\b((?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/)(?:[^\\s()<>]+|\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\))+(?:\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:'\".,<>???“”‘’]))";

Matcher m = Pattern.compile(regex).matcher(message);

if (m.find()) {

String url = m.group();

String shorted = null;

try {

shorted = Shortener.GetShortedISGD(url);

} catch (IOException e1) {

// TODO Auto-generated catch block

}

}

String intercepted = message.replace(url, shorted);

e.setMessage(intercepted);

}

我将如何替换所有这些?

(我为此使用了Bukkit API,所以很多功能不是Java编写的).

我正在考虑将消息拆分为单词数组,然后评估每个单词是否将是URL,除非这样做可能没有进行优化.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值