Небольшое регулярное выражаение

smkdesign

Новичок
Небольшое регулярное выражаение

Всем привет

Не получается составить регулярное выражение:

Имея блок кода:
PHP:
<font>Автор: <a href="/user/*****/">Photoshop</a></font>

Нужно чтоб на выходе получился массив:
Array
(
[0]=>'<font>',
[1]=>'Автор: ',
[2]=>'<a href="/user/*****/">',
[3]=>'Photoshop',
[4]=>'</a>',
[4]=>'</font>'
)

Пытаюсь это сделать регулярным выражением
PHP:
REGEXP: <.*?>|>.*?<
, но увы не то что нужно получается ((

Подскажите плз.
 
PHP:
$string = '<font>Автор: <a href="/user/*****/">Photoshop</a></font>';
$regex = '%(<font>)\s*([а-я]+:\s*)(<a[^<]*>)([^<]+)(</a>)(</font>)%i';
preg_match( $regex, $string, $macth );
echo '<pre>';
print_r( $macth );
echo '</pre>';
 
Спасибо

Только это частный случай, а мне нужен в общем чтоб оно срабатывало независимо от количества тегов и их особенностей. Т.е. для всего моего контента.

Можно конечно тупо в лоб через strpos сделать, но не нравиться мне такой вариант...
 
Мой mod_telepat подсказывает, что, возможно, тебе на самом деле нужно [m]output_add_rewrite_var[/m]. А вообще ты бы описал задачу, зачем ты это, собственно, делаешь.
 
Если это твой код, то почему нельзя сразу, перед формированием HTML-кода, пропускать URI через какой-то обработчик?
 
Splurov
Спасибо

Используя проверки составил выражение так:
PHP:
(?<=>).*?(?=<)|(?<=>).*?(?=<)

Но оно опять же оно не позволяет получить нужную информацию. Оно позволяет получить весь текст между тегами,а нужно в свою очередь весь текст между тегами и все теги также.
 
Прочитай внимательно свой первый пост в теме, мой ответ и регулярное выражение из твоего последнего ответа. Я говорил только о второй части условия (">.*?<") и уж, тем более, не предлагал дублировать исправленную вторую часть в первую.
 
Вери фенкс!

Да, не внимательно прочел, итоговое выражение имеет вид:
PHP:
<.*?>|(?<=>).*?(?=<)
 
Сверху