我需要替换大量文件中存在的 html 片段,捕获 <td> 标签之间的所有信息,并将其替换为 <li> 标签内的(错误)信息。

代码如下所示:

<li><b>Details:</b> WRONG TEXT</li>
<li><b>Product:</b> WRONG TEXT</li>
<li><b>Requirements:</b> WRONG TEXT</li>

// There are a lot of codes that should not be changed here, between the above and the one below.

<td>CORRECT TEXT</td>
<td>CORRECT TEXT</td>
<td>CORRECT TEXT</td>

它应该是这样的:
<li><b>Details:</b> CORRECT TEXT</li>
<li><b>Product:</b> CORRECT TEXT</li>
<li><b>Requirements:</b> CORRECT TEXT</li>

我在下面创建了这个正则表达式。 .
(?s)(<li><b>.*?:<\/b>\s+(.*)<\/li>).*?<td>(.*)<\/td>

但它相互替换,而不仅仅是标签之间的文本。

有人可以给我一个提示吗?

编辑

在示例代码中添加了必要的信息。

最佳答案

也许,用类似的表达,

(<li><b>.*?<\/b>).*?<\/li>\s*(<li><b>.*?<\/b>).*?<\/li>\s*(<li><b>.*?<\/b>).*?<\/li>(\s*.*?)<td>(.*?)<\/td>\s*<td>(.*?)<\/td>\s*<td>(.*?)<\/td>
和一些替代品,例如,
$1 $5</li>\n$2 $6</li>\n$3 $7</li>\n$4
我们可以做到这一点,假设有三个实例。
Demo

关于html - 正则表达式匹配和移动 HTML,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58087569/

10-14 14:22
查看更多