gpt4 book ai didi

java - 正则表达式:如何用 n 次出现的子字符串替换字符串

转载 作者:行者123 更新时间:2023-12-04 20:48:45 25 4
gpt4 key购买 nike

作为前提,我有一个 HTML 文本,其中包含一些 <ol>元素。这些有一个 start属性,但我使用的框架无法在 PDF 转换期间解释它们。所以,我尝试应用的技巧是添加一些不可见的 <li>开头的元素。

举个例子,假设这个输入文本:

<ol start="3">
<li>Element 1</li>
<li>Element 2</li>
<li>Element 3</li>
</ol>

我想产生这样的结果:

<ol>
<li style="visibility:hidden"></li>
<li style="visibility:hidden"></li>
<li>Element 1</li>
<li>Element 2</li>
<li>Element 3</li>
</ol>

因此,将 n-1 个不可见元素添加到有序列表中。但我无法以通用方式从 Java 中做到这一点。

假设示例中的确切情况,我可以这样做(使用 replace ,所以 - 老实说 - 没有正则表达式):

htmlString = htmlString.replace("<ol start=\"3\">",
"<ol><li style=\"visibility:hidden\"></li><li style=\"visibility:hidden\"></li>");

但是,显然,它只适用于“start=3”的情况。我知道我可以使用组来提取“3”,但是如何将它用作“变量”来指定字符串 <li style=\"visibility:hidden\"></li> n-1 次?感谢您的任何见解。

最佳答案

你不能使用正则表达式来做到这一点,或者即使你找到了一些 hack 来做到这一点,它也将是一个次优的解决方案..

正确的做法是使用 HTML 解析库(例如 Jsoup ),然后添加 <li>标记为 <ol> 的子项,特别是使用 Element#prepend方法。 (使用 Jsoup,您还可以读取 start 属性值以计算要添加的元素数量)

关于java - 正则表达式:如何用 n 次出现的子字符串替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52205675/

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