我目前正在尝试转换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),但我愿意用任何东西来完成这项任务。
答案 0 :(得分:2)
\s*?<tr>\s*?<td>(.*?)<\/td>\s*?<td>.*?(<img[^>]*>).*?<\/td>.*?<\/tr>
w / sig
选项应该这样做。
答案 1 :(得分:0)
尝试使用here工具(仅限Windows AFAIK)。它支持多个文件的正则表达式搜索和替换。匹配多个出现应该没问题。
你是否试过没有“桌子”的比赛?像这样TextCrawler