За последние 24 часа нас посетили 17244 программиста и 1222 робота. Сейчас ищут 1495 программистов ...

никак не могу выбрать

Тема в разделе "Регулярные выражения", создана пользователем ajk, 7 янв 2008.

  1. ajk

    ajk Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    6
    Симпатии:
    0
    Адрес:
    Коломна, Россия
    никак не могу выбрать, плз, помогите
    Вот строка:
    <table class=MsoTableGrid border=1 cellspacing=0 cellpadding=0
    style='border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
    mso-yfti-tbllook:480;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;mso-border-insideh:
    .5pt solid windowtext;mso-border-insidev:.5pt solid windowtext'>

    Можно выьрать так:
    <table border=1 cellspacing=0 cellpadding=0>
    ????

    Например:
    $search = array (
    "/<table.+border=(.+) style.+>/smU", // <table>
    );
    $replace = array (
    "<table border=\\1>", // <table>
    );
    $text = preg_replace ($search, $replace, $str);

    Ну, типа, условные паттерны, или ещё как. Но не тупо!

    Спасибо!
     
  2. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    Чего надо то? :)
    из той мешанины получить тег Табле со св-вами бордера и ячеек?
     
  3. ajk

    ajk Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    6
    Симпатии:
    0
    Адрес:
    Коломна, Россия
    Именно, убрать весь виндовозный хлам и оставить пролетарскую суть.
    А вот, повеселее:

    $str="<p class=MsoNormal align=center style='text-align:center;
    text-indent:35.45pt;line-height:150%'>";

    Здесь, ключевое слово "align=" Оно бывает с разными значаниями, а иногда не бывает его вообще.

    В общем, я всё подобрал, но вот свойства внутри тэга плохо даются, особенно, когда они необязательные.

    $search = array (
    "/<p.+>/smU",
    );
    $replace = array (
    "<p>",
    );
    $text = preg_replace ($search, $replace, $str);

    echo "$text|\n";

    Вот я весь хлам выбрал. Но в этом теге есть нужные мне свойства - align

    Можно это выцепить одной строчкой?

    Спасибо!
     
  4. ajk

    ajk Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    6
    Симпатии:
    0
    Адрес:
    Коломна, Россия
    У Экслера подсказали:
    Код (Text):
    1. $str = "
    2. <span align=center style='font-size:14.0pt;mso-bidi-font-size:10.0pt;line-height:150%;
    3. font-family:\"Times New Roman\";mso-fareast-font-family:\"Times New Roman\";
    4. mso-ansi-language:RU;mso-fareast-language:RU;mso-bidi-language:AR-SA' align=center2><br
    5. clear=all style='page-break-before:auto;mso-break-type:section-break'>
    6. </span>
    7. ";
    8.  
    9.     $search = array(
    10.      "`(clear|v:shapes|class|style)=([^\"\' ]+|[\'\"].*?[\'\"])`si",
    11.      );
    12. echo preg_replace($search, null, $str);
    Всё просто, только нужно паттерны с `?` понять. Что-то плохо идет :)