【发布时间】:2018-05-31 03:16:32
【问题描述】:
我正在尝试使用 regExps 进行整理,所以在途中遇到了一个问题:
问题是我有一些带有纯文本的随机 HTML 文件,只有一个表格。文字可以在表格前后,表格不包括<thead><tbody><tfoot> rowspan等。所以我需要把这个表分成几个表,每个表有 5 行,最后一个不超过 5 行,在每个表中重复原始表的第一个字符串。比如:
<table>
<tr>
<td>A</td><td>B</td>
</tr>
<tr>
<td>A1</td><td>B1</td>
</tr>
<tr>
<td>C</td><td>D</td>
</tr>
<tr>
<td>E</td><td>F</td>
</tr>
<tr>
<td>E1</td><td>F1</td>
</tr>
<tr>
<td>E2</td><td>F2</td>
</tr>
<tr>
<td>E3</td><td>F3</td>
</tr>
<tr>
<td>E4</td><td>F4</td>
</tr>
</table>
应该变成:
<table>
<tr>
<td>A</td><td>B</td><--!!!(not needed to be in code)-->
</tr>
<tr>
<td>A1</td><td>B1</td>
</tr>
<tr>
<td>C</td><td>D</td>
</tr>
<tr>
<td>E</td><td>F</td>
</tr>
<tr>
<td>E1</td><td>F1</td>
</tr>
</table>
<table>
<tr>
<td>A</td><td>B</td><--!!!(not needed to be in code)-->
</tr>
<tr>
<td>E2</td><td>F2</td>
</tr>
<tr>
<td>E3</td><td>F3</td>
</tr>
<tr>
<td>E4</td><td>F4</td>
</tr>
</table>
我需要在 PHP 中使用 PCRE 来完成这些工作,包括大量模板和更改。所以我有实现的问题。现在我可以找到像这样<table>\s*?(<tr>(?:\s|.)*?<\/tr>) 的第一行和4 个逐行的(<tr>(?:\s|.)*?<\/tr>\s*){1,4} 但我不知道应该如何找到第二个模板的所有出现,以便我以后可以使用它们以及如何如果有</table> 表结束标记,则停止搜索。所以请帮忙
编辑
问题已得到解答,因此下一级添加原始表格标签<thead><tbody><tfoot>。在输出表中应该重构原始表的结构,所以我的意思是如果原始表的第一行是<thead>标签的一部分,它应该在<thead>中是所有输出表。
【问题讨论】:
-
也许现在只使用DOMDocument 会更容易? :)
-
是的,它会更容易,但现在它就像一个挑战
-
啊,事情的原理……必须……让它……工作……!!!
-
而且我知道它不喜欢只为我用于实际项目
-
抱歉 rus stackoverflow 不想帮助我
标签: php html regex html-table pcre