ФорумПрограммированиеPHP для идиотов → прэг_мэтч по шаблону ".*"

прэг_мэтч по шаблону ".*"

  • Rotten

    Сообщения: 2243 Репутация: N Группа: Адекваты

    Spritz 31 августа 2009 г. 5:16

    Есть тут така одна задача. Я б не сказал что сложная. Но чтото никак до истины докопаться немогу, слишком уж долго сижу.
    Как мы знаем в PCRE спецЧар "." - значит совпадение по всех символах. По всех кроме символа перевода строки "\n".
    Мне надо чтобы оно и этот символ тоже схавало.
    я много перепробовал шаблонов - но не конает. Потом забил, поудалял нахрен в строке все символы "\n", ну пробовал nl2br(String str), оно то заменило, но но в пергМатче схавало все до самого конца строки.
    Мне же надо - извлечь из строки все из определенной табличной ячейки(типа по шаблону
    "/<td class = \"sadistic\">
    <br><br>(.*)<\/td>/"
    ).
    Короче, вопрос - как составить паттэрн так, чтобы туда попал как и "." так и "\n"
    (\n.*), (.\n*), (.*)\n, ((.*)\n) конать не хочет, отчасти потому что это даже неправильно по синтаксису для этой цели….
  • Rotten

    Сообщения: 2243 Репутация: N Группа: Адекваты

    Spritz 31 августа 2009 г. 5:21, спустя 5 минут 38 секунд

    Кстати….если можно - не предлагайте чтото в стиле классификатора в кв. дужках([A-Za-z!?()])…
    Да, я понимаю что можно явно позадавать все что должно туда попасть по паттэрну, но так и до упаду можно делать. Ведь символы могут быть разные(там слишком большой текст с описанием)…
    с другой стороны - квантификаторов (\w\s)… и тд не хватает…
  • AndryG

    Сообщения: 237 Репутация: N Группа: Адекваты

    Spritz 31 августа 2009 г. 6:18, спустя 56 минут 26 секунд

    preg_match('/.*/s',"\nраз\nдва\nтри",$matches);
    echo "<PRE>\n".print_r($matches,true);


    Array
    (
       [0] =>
    раз
    два
    три
    )


    s (PCRE_DOTALL)
    Если данный модификатор используется, метасимвол "точка" в шаблоне соответствует всем символам, включая перевод строк. Без него - всем, за исключением переводов строк. Этот модификатор эквивалентен записи /s в Perl. Класс символов, построенный на отрицании, например [^a], всегда соответствует переводу строки, независимо от наличия этого модификатора.
  • Rotten

    Сообщения: 2243 Репутация: N Группа: Адекваты

    Spritz 31 августа 2009 г. 6:25, спустя 7 минут 20 секунд

    спасибо.
    я редко обращаю внимания на эти модификаторы. Знаком толком с i(игнорРегистр), но и его не приходилось никогда применять.
    Буду теперь в курсе..

Пожалуйста, авторизуйтесь, чтобы написать комментарий!