gpt4 book ai didi

java - 如何解决 replaceAll 的 replaceAll

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:53:44 26 4
gpt4 key购买 nike

我有个小问题。我有一段文字,我必须在浏览器中阅读几次。每次,我打开这个文本,自动启动一个我写的 replaceAll。它非常简单、基本,但问题是当我下次替换时(每次我阅读这篇文章时)我有一个 replaceAll 的 replaceAll。例如我在文中有:

XIII

我想把它换成

<b>XIII</b>

与:

txt.replaceAll("XIII","<b>XIII</b>")

第一次一切正常,但后来,当我再次阅读文本时,它变成了:

<b><b>XIII</b></b>

这是一个愚蠢的问题,但我现在开始使用 Java。我读到可以使用正则表达式。有人可以发布一个小例子吗?

谢谢,请原谅我的英语不好。

最佳答案

您需要负向回顾以防止匹配已标记的字符串:

txt.replaceAll("(?<!>)XIII","<b>XIII</b");

这个表达式看起来有点复杂,但它是这样分解的:

  • (?<! ... )是负面回顾的模板;
  • >是我们要确保不会出现在您的字符串前面的特定字符。

我还应该警告您,用正则表达式修复 HTML 通常会变成升级正则表达式以处理另一种特殊情况的恶性循环,结果只能看到它在下一个问题上失败。它最终变成了一个没人能读懂的怪物,更不用说改进了。

关于java - 如何解决 replaceAll 的 replaceAll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14728574/

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