【发布时间】:2017-08-03 19:45:58
【问题描述】:
所以我想提取表单标签之间的所有内容(包括它们本身的标签)。
表格如下:
<body><br />
<!--
<form method="POST" action="#">
<table style="table-layout: fixed; border: 1px solid #ffffff; " border="1">
<!--
<col width="50"> --></p>
<tr style="width: 1154px; background-color: #0d56c2; vertical-align: middle; color: #ffffff; height: 70px; ">
<td style="width: 413px; text-align: center;">Calls</td>
<td style="background-color: #D6DCE5; width: 319px; padding-left: 20px; padding-top: 15px;"><input type="text" name="calls" value="150" style="width: 173px;"></td>
<td style="width: 412px; padding: 5px; vertical-align: middle;"> in a period of <input name="period" value="5" style="width: 173px; "> <br />
<select name="callUnit" style="width: 100px; height: 29px; position: absolute;"><option value="hour" selected>hours</option><option value="minute" >minutes</option></select>
</td>
</tr>
</table>
</form>
</body>
我正在使用的正则表达式是:<form.*>[\s\S]*<\/form> 并根据regex101 这是一个有效的正则表达式,应该提取表单标签+介于两者之间的所有内容。
但是在 preg_match 中使用上述正则表达式我得到以下错误:Warning: preg_match(): Unknown modifier '['
【问题讨论】:
-
正则表达式并不是处理 html 解析的最佳工具。您是否考虑过为此使用 DOM 解析器?
-
对我们来说,能够帮助解决我们真正需要您使用的 php 代码行的具体问题...
标签: php regex validation