Java : replacing all URLs with anchor tags that aren't already in anchor tags

标签 java regex url replace

我正在尝试替换文档的 anchor 标记封闭 URL 中的所有非 anchor 标记封闭 URL。所以给定字符串:

I have two urls for google: <a href="http://www.google.com/">google</a> and http://www.google.com/

我想用这个替换它:

I have two urls for google: <a href="http://www.google.com/">google</a> and <a href="http://www.google.com/">http://www.google.com/</a>

有人知道在 Java 中执行此操作的干净方法吗?

最佳答案

这可能会帮助您入门(它适用于给定的示例):

public class test {
    public static void main(String[] args) {
        final String test = "I have two urls for google: <a href=\"http://www.google.com/\">google</a> and http://www.google.com/";
        System.out.println(test.replaceAll("(?<!\\<a\\ href=\")http:\\/\\/[^ ]*",
                                           "<a href=\"$0\"/>"));
    }
}

它有一些问题:

  • 它不考虑“a”标签中的空格,除了开头“a”和“href”之间的单个空格
  • 假设 URL 为“http://”,后跟零个或多个不等于空格 ("") 的字符

这适用于简单的示例,我不确定您如何编写完整的解决方案。

关于Java : replacing all URLs with anchor tags that aren't already in anchor tags,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3144208/

相关文章:

java - 如何使用 Logback 仅更改当前线程的日志级别

Java:如何根据非字母分隔符反转字符串?

javascript - 从字符串中删除不带引号的属性

python - 在 python 中创建来自 JSON url 的字典

java - 如何用Java以编程方式访问网站?

ios - UIImageView,从远程 URL 加载 UIImage

java - 当返回类型只是 int 时,如何返回多个整数?

java - 是否可以使用Java反射或各种技术来检查一个类是否有父类?

java - 如何使用 HttpClient

regex - Excel VBA 正则表达式匹配位置