【发布时间】:2014-09-23 02:23:17
【问题描述】:
我尝试使用特殊的 div 容器将所有表格包装在我的内容中,以使它们可用于移动设备。
在将表格保存在自定义 CSS 的数据库中之前,我无法包装表格。在内容打印在页面上之前,我设法获得了内容,我需要 preg_replace 那里的所有表格。
我这样做是为了获取所有表格:
preg_match_all('/(<table[^>]*>(?:.|\n)*<\/table>)/', $aFile['sContent'], $aMatches);
问题是让内部(?:.|\n)* 匹配标签内的所有内容,而不匹配结束标签。现在表达式匹配所有内容,甚至是表格的结束标记...
有没有办法排除结束标签的匹配?
【问题讨论】:
-
"有没有办法排除结束标签的匹配?" - 使用 HTML 解析器而不是正则表达式
-
你应该使用惰性匹配模型,试试:preg_match_all('/(
]*>(?:.|\n)*?)/', $aFile['sContent'], $aMatches);
首先——你不应该在不需要的时候使用正则表达式。其次,在这里阅读:stackoverflow.com/questions/1732348/… 最后使用 hek2mgl 答案
标签: php html regex html-table html-parsing