当前位置:  开发笔记 > 编程语言 > 正文

将文本与Java中的正则表达式链接

如何解决《将文本与Java中的正则表达式链接》经验,为你挑选了1个好方法。

我在Java webapp中有一个所见即所得的文本区域.用户可以输入文本并对其进行样式设置或粘贴一些已经HTML格式的文本.

我想要做的是链接文本.这意味着,将文本中所有可能的URL转换为"工作对应",即添加 ... .

当我只有纯文本时,此解决方案有效:

String r = "http(s)?://([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*)?";
Pattern pattern = Pattern.compile(r, Pattern.DOTALL | Pattern.UNIX_LINES | Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(comment);
comment = matcher.replaceAll("$0"); // group 0 is the whole expression

但问题是当有一些已经格式化的文本时,即它已经 ... 标签.

因此,当我在两个HTML标记()之间找到文本时,我正在寻找一种不匹配的模式.我已阅读本可以实现前瞻或回顾后,但我仍然不能使它发挥作用.我确信我做错了因为正则表达式仍然匹配.是的,我一直在玩/调试组,将$ 0改为$ 1等.

有任何想法吗?



1> Kees de Koot..:

你很亲密 您可以像这样使用"负面后观":

(?

以href开头的所有结果都将被忽略.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有