带有preg_split的regexp无法正常工作

时间:2014-01-06 14:56:54

标签: php regex

我在这里测试regexpal.com它应该匹配,但它不匹配......

$tabla_contenido = "ouseout=\"sacarobs();\">06/01/2014&nbsp;10:21</a></td><td align='right'><a class='texto'><b>Pendiente</b></a></td><td align='right'><a class='texto'><b>Pendiente</b></a></td><tr class='eltr' onclick=\"ventana('mostrar_nota_de_pedido.php?nnp=117&ven=152&cli=0001&scl=C07&pr=96244651', 'pedidos_listadoNelson');\" ><td align='right'><a class='texto'>117</a></td><td align='right'><a c";
$tabla_data = preg_split("|<tr([^>.]|\.|\,)*>|", $tabla_contenido);
foreach ($tabla_data as $line){
    echo $line."\n\n\n";
}

$ tabla_data为空

1 个答案:

答案 0 :(得分:1)

问题是你没有逃避正则表达式中的|。最简单的解决方案是使用不同的分隔符,例如~

$tabla_data = preg_split("~<tr([^>.]|\.|\,)*>~", $tabla_contenido);

或者,您可以使用反斜杠转义|字符,即|将变为\|,但它会使您的正则表达式有点不可读,所以我建议使用不同的分隔符代替