【发布时间】:2019-02-13 08:36:21
【问题描述】:
我在使用 Regex 时一直遇到问题,现在我需要扫描一段格式错误的代码以获取 option 标签 的内容,发生的情况是它们所在的网络获得的,有一个糟糕的编程并且结构在它的所有标签中都不匹配:
这是我一直用于其他不同部分的正则表达式,它对我来说效果很好,但在这方面它不能正常工作,我认为这是因为换行符或制表:
$pattern='/<td class="bgn"[ ]*colspan=1[ ]*>Padron[ ]:*<\/td>\r\n[\t]*[ ]+<td class="bg" colspan=[1|3]+>(.*)<\/td>/';
$output = preg_match_all($pattern, $Page, $matches, PREG_SET_ORDER);
if(isset($matches[0]))
{
$rtn[Padron] = trim(utf8_encode( preg_replace( "[\s+]"," ", ($matches[0][1]) ) ) );
}
这是我要扫描的代码:
<td class="bgn" colspan=1>Padrones :</td>
<td class="bg" colspan=3>
<select name="select" >
<option value="00" >Incorporado al Régimen de Buenos Contribuyentes (Resolución N° 0230050132461) a partir del 01/08/2015</option>
<!-- JRR - 20/09/2010 - Se añade cambio de Igor -->
</select>
我一直在使用PHP Live Regex 进行测试,但我无法捕获我需要的信息,这是选项标签内的信息。
PS:我知道使用 PHP Simple Html 会更简单,但该项目已经交给我并使用正则表达式。
【问题讨论】:
标签: php html regex preg-match-all