我需要替换大量文件中存在的 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/