有字符串如下 :
<div tag="aaaaa" ><table>.......</table></div tag="aaaaa">
<div tag="aaaaa" ><a href=''></a></div tag="aaaaa">
<div tag="aaaaa" ><div ></div>.... </div tag="aaaaa">
...要把所有的 <div tag="aaaaa" > </div tag="aaaaa">及中间的代码分别找出来.
要如何写表达式?
<div tag="aaaaa" ><table>.......</table></div tag="aaaaa">
<div tag="aaaaa" ><a href=''></a></div tag="aaaaa">
<div tag="aaaaa" ><div ></div>.... </div tag="aaaaa">
...要把所有的 <div tag="aaaaa" > </div tag="aaaaa">及中间的代码分别找出来.
要如何写表达式?
preg_match("/<div[^<]+?>(.*)<\/div.*?>/i",$s,$r);
echo $r[1];
$s = '<div tag="aaaaa" ><div>.......</div></div tag="aaaaa">';
代码如下,
不知道pattern 中 ?<= 这三个连写是什么作用呢?
<?
$str = "<div tag=\"aaaaa\" ><table>.......</table></div tag=\"aaaaa\">
<div tag=\"aaaaa\" ><a href=''></a></div tag=\"aaaaa\">
<div tag=\"aaaaa\" ><div ></div>.... </div tag=\"aaaaa\">";$pattern = "/(?<=<div tag=\"aaaaa\">)[\s\S]*?(?=<\/div tag=\"aaaaa\">)/";$ret = preg_match_all($pattern,$str,$r);
echo $ret."\n";
print_r( $r)."\n";
?>
你试下这个?<div tag="aaaaa"><table>.......</table></div tag="aaaaa">
<div tag="aaaaa"><a href=''></a></div tag="aaaaa">
<div tag="aaaaa"><div ></div>.... </div tag="aaaaa">
(<div tag="aaaaa">)[\s\S]*?(</div tag="aaaaa">)
$s = '<div tag="aaaaa" ><table>.......</table></div tag="aaaaa"><div tag="aaaaa" ><table>.......</table></div tag="aaaaa"><di
v tag="aaaaa" ><table>.......</table></div tag="aaaaa">';
while(preg_match("/<div[^<]+?>(.*?)<\/div.*?>(.*)/i",$s,$r))
{
echo $r[1]."\n";
$s = $r[2];
}
<?
$str = "<div tag=\"aaaaa\" ><table>.......</table></div tag=\"aaaaa\">
<div tag=\"aaaaa\" ><a href=''></a></div tag=\"aaaaa\">
<div tag=\"aaaaa\" ><div ></div>.... </div tag=\"aaaaa\">";
$pattern = "/(<div tag=\"aaaaa\"[^>]*>[\s|\S]*?<\/div tag=\"aaaaa\">)/";
$ret = preg_match_all($pattern,$str,$r);
print_r( $r)."\n";
?>
输出 :
Array
(
[0] => Array
(
[0] => <div tag="aaaaa" ><table>.......</table></div tag="aaaaa">
[1] => <div tag="aaaaa" ><a href=''></a></div tag="aaaaa">
[2] => <div tag="aaaaa" ><div ></div>.... </div tag="aaaaa">
) [1] => Array
(
[0] => <div tag="aaaaa" ><table>.......</table></div tag="aaaaa">
[1] => <div tag="aaaaa" ><a href=''></a></div tag="aaaaa">
[2] => <div tag="aaaaa" ><div ></div>.... </div tag="aaaaa">
))
$str = "<div tag=\"aaaaa\" ><table>.......</table></div tag=\"aaaaa\">
<div tag=\"aaaaa\" ><a href=''></a></div tag=\"aaaaa\">
<div tag=\"aaaaa\" ><div ></div>.... </div tag=\"aaaaa\">";
$pattern = "/<div tag=\"aaaaa\"[^>]*>(.+?)<\/div tag=\"aaaaa\">/s";
$ret = preg_match_all($pattern,$str,$r);
print_r($r);
?>