BloodyMind Posted November 18, 2010 Share Posted November 18, 2010 Here is my the expression I'm trying which is logical, but it fails #<div[^>]*>(?!(<div))</div># any help will be really appreciated Quote Link to comment Share on other sites More sharing options...
BloodyMind Posted November 18, 2010 Author Share Posted November 18, 2010 using PCRE since POSIX are deprecated Quote Link to comment Share on other sites More sharing options...
.josh Posted November 19, 2010 Share Posted November 19, 2010 So you have a negative lookahead looking for the absence of <div you aren't actually consuming any characters, matching anything in-between your main opening div and closing div. Quote Link to comment Share on other sites More sharing options...
shehabic Posted November 19, 2010 Share Posted November 19, 2010 So you have a negative lookahead looking for the absence of <div you aren't actually consuming any characters, matching anything in-between your main opening div and closing div. So what would the correct regex be for such a case , I have a very simillar case . . . Quote Link to comment Share on other sites More sharing options...
sasa Posted November 19, 2010 Share Posted November 19, 2010 try <?php function my_find($data, $start_tag, $end_tag){ $end = strpos($data, $end_tag); if ($end){ if (($start = strpos($data, $start_tag)) !== false){ while ((($tmp = strpos($data, $start_tag, $start+1 )) !== false) and $tmp < $end) $start = $tmp; } else echo 'no open tag'; return substr($data, $start, $end - $start + strlen($end_tag)); } } $test = '<div>1 <div>2 <div>3<div>4</div></div></div></div>'; echo my_find($test, '<div', '</div>'); ?> Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.