gpt4 book ai didi

java - String ReplaceAll 方法不起作用

转载 作者:搜寻专家 更新时间:2023-10-31 19:34:53 24 4
gpt4 key购买 nike

我正在使用这种方法来解析一些 HTML 中的纯文本 URL 并使它们成为链接

private String fixLinks(String body) {
String regex = "^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]";
body = body.replaceAll(regex, "<a href=\"$1\">$1</a>");
Log.d(TAG, body);
return body;
}

但是 HTML 中没有 URL 被替换。正则表达式似乎与其他正则表达式测试器中的 URL 匹配。怎么回事?

最佳答案

^ anchor 意味着正则表达式只能匹配字符串的开头。尝试将其删除。

另外,看起来你的意思是 $0 而不是 $1,因为你想要整个匹配而不是第一个捕获组,即 (https? |ftp|文件).

总而言之,以下对我有用:

private String fixLinks(String body) {
String regex = "(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]";
body = body.replaceAll(regex, "<a href=\"$0\">$0</a>");
Log.d(TAG, body);
return body;
}

关于java - String ReplaceAll 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8317364/

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