file_put_contents('./struct.txt', var_export($struct, true));
1 =>
array (
0 =>
array (
'description' => 'Unknown closing tags: 9',
'data' =>
array (
55 => 56,
58 => 59,
62 => 65,
66 => 67,
69 => 70,
71 => 72,
50 => 111,
119 => 122,
123 => 124,
),
),
1 =>
array (
'description' => 'Unclosed tags recovered: 4',
'data' =>
array (
0 => 55,
1 => 66,
2 => 69,
3 => 123,
),
),
),
3 =>
array (
'ind' => 54,
'offset' => 1166,
'end_offset' => 1169,
'length' => 3,
'name' => 'p',
'lname' => 'p',
'known' => 1,
'type' => 1,
'content' =>
array (
0 => 'Анджей ',
1 =>
array (
'ind' => 55,
'offset' => 1176,
'end_offset' => 1179,
'length' => 3,
'name' => 'a',
'lname' => 'a',
'known' => 1,
'type' => 1,
'content' =>
array (
0 => 'Пилипюк',
),
),
),
),
<p>Анджей <a>Пилипюк шел <b>по улице, насвистывая <i>незатейливую мелодию</p>
превратится в результате в:<p>Анджей <a>Пилипюк шел <b>по улице, насвистывая <i>незатейливую мелодию</i></b></a></p>
$pattern='[\s]+([a-z]+)(?:[\s]*?\=[\s]*?[\d]+)?';
...
$r=preg_match_all('/целое('.$pattern.')+/is', $s, $matches, PREG_SET_ORDER, 0);
...
$r=preg_match_all('/'.$pattern.'/is', $m[0], $rmatches, PREG_SET_ORDER, 0);
Сколько не пытайтесь, я вам все-равно придумаю контрпример. Ломать — не строить ))
Кроме всего прочего в этой ветке я смотрю даже жадность(greedy) в регекспах не ограничивает никто )))