Okay, lets say I have the following text...
<h2><a name="test1"></a>Test 1</h2>test 1 text
<h2><a name="test2"></a>Test 2</h2>
test 2 text
<h3><a name="test3"></a>Test 3</h3>
test
3
text
<h4><a name="test4"></a>Test 4</h4>
<h4><a name="test5"></a>Test 5</h4>test 5 text
I would like to use regular expressions to replace that text with the following:
<div class="toggle">
<h2><a name="test1"></a>Test 1</h2>
<div class="contents">test 1 text</div>
</div>
<div class="toggle">
<h2><a name="test1"></a>Test 2</h2>
<div class="contents">test 2 text</div>
</div>
<div class="toggle">
<h3><a name="test1"></a>Test 3</h3>
<div class="contents">test
3
text</div>
</div>
<div class="toggle">
<h4><a name="test1"></a>Test 4</h4>
<div class="contents"></div>
</div>
<div class="toggle">
<h4><a name="test1"></a>Test 5</h4>
<div class="contents">test 5 text</div>
</div>
I tried using:
$text = preg_replace('#<h(\d+)>(.*?)</h\1>(.*)#si', '<div class="ToggleContents"><h$1>$2</h$1><div class="contents">$3</div></div>', $text);
But the problem with this is that it's far too greedy and I haven't figured out how to make it ungreedy and work. Anyone have any ideas?
Test 1
test 1 text for example? – Book Of Zeus Aug 25 '11 at 01:47