我目前正在尝试转换 HTML 表格,如下所示:
<table>
<tr>
<td>
Some Text
</td>
<td>
<img src="..." ...>
</td>
</tr>
...
</table>
进入这样的 HTML 列表:
<ul>
<li>
<div>
<p> Some Text </p>
</div>
<img src="..." ...>
</li>
...
</ul>
由于我需要在多个文件(100+)中执行此操作,因此我想使用正则表达式来完成它。然而,虽然我能够捕获我感兴趣的部分,但它似乎只捕获了捕获组的最后一次出现。
有没有办法取回所有捕获的零件?
这是我目前的进度:
<table>(?>\s*?<tr>\s*?<td>(.*?)<\/td>\s*?<td>.*?(<img[^>]*>).*?<\/td>.*?<\/tr>)+\s*?<\/table>
(如果您有兴趣,这里有一个可以摆弄的链接: https://regex101.com/r/hQ8pF1/2 )
我选择的编辑器是 Sublime Text(使用 PCRE 引擎 AFAIK),但我愿意使用任何东西来完成这项任务。
最佳答案
\s*?<tr>\s*?<td>(.*?)<\/td>\s*?<td>.*?(<img[^>]*>).*?<\/td>.*?<\/tr>
带sig
对于选项应该这样做。
Sample .
关于html - RegEx - 多次捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30111832/