регулярное выражение

litledi

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

Привет всем. помогите составить регулярное выражение, задача вырезать всё ненужное например в теге <P> оставив только если там есть align=left или другие выравнивания, если в этом "мусоре" есть выравнивание я написал:
PHP:
$str = preg_replace("/(<P[^>]*align=right[^>]*>)/i","<P align=right>",$str);
и после этого эстаются тэги с выравниванием и тэги содержащие только "мусор", как теперь написать выражение чтобы убрать этот мусор не затронув уже "почищенные" код:
PHP:
$str = preg_replace("/(<P[^>]*>)/i","<P>",$str);
оставит только <P>
 

Сергей123

Новичок
Как-то писал ф-ю убирания всего, кроме href, из <a>...
Может, поможет:
PHP:
function fncStripAttrsExceptHREF($strText) {

    $strRegExp1 = '~
        <\s*a\s+    # начало тэга <a>
        [^>]*       # мусор до href

        href\s*=\s* # начало атрибута href
        ([\'"]?)    # опциональные кавычки
        (\S+)       # значение атрибута
        \1          # такие же кавычки

        [^>]*       # мусор после href
        >           # конец тэга
    ~ix';

    $strRegExp2 = '~
        on(
            (dbl)?click                     |
            mouse(down|up|over|move|out)    |
            key(press|down|up)              |
            focus                           |
            blur
        )
    ~ix';

    return
        preg_replace(
            $strRegExp2,
            'BAD',
            preg_replace(
                $strRegExp1,
                '<a href="\2" target="_blank">',
                $strText
            )
        );

} # function fncStripAttrsExceptHREF
 

litledi

Новичок
спасибо щас попробую

-~{}~ 31.03.04 16:32:

попробовал, получилось!!!, осталось вникнуть в детали самого выраженица чтоб углубить знания как говорится
тыщу раз спасибо
 
Сверху