За последние 24 часа нас посетили 17785 программистов и 1654 робота. Сейчас ищут 1456 программистов ...

Помогите с регуляркой

Тема в разделе "Регулярные выражения", создана пользователем 0x0, 3 окт 2013.

  1. 0x0

    0x0 Новичок

    С нами с:
    29 авг 2013
    Сообщения:
    13
    Симпатии:
    0
    Помогите переделать регулярку, уже несколько дней пытаюсь, но не получается.

    есть html таблица:
    с помощью регулярки мне нужно на выходе получить массив из 3 значений

    1:
    2:
    3:
    в первом значении массива есть две строки таблицы (начинаются с <Tbody id="line"><Tr class="tc1">)

    во втором и третьем значении массива только по одной строке (которые с <Tbody id="line"><Tr class="tc1">)

    вот регулярка которая подходить для моего примера
    Код (Text):
    1. preg_match_all("/(<td colspan=\"9\">(.*?)<\/a><\/td><\/tr><\/tbody><Tbody id=\"line\">(.*?)<\/tbody>)|(<td colspan=\"9\">(.*?)<\/a><\/td><\/tr><\/tbody>)/is",$a,$pars);
    но проблема в том что она может парсить только если в таблице по одной строке или по две
    а этих строк (которые с <Tbody id="line"><Tr class="tc1">) на самом деле может быть сколько угодно

    вот допустим такой пример таблицы, эта регулярка уже не работает, она забирает только две строки, этих строк в таблице больше двух
    помогите переделать регулярку
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    DOM поможет
     
  3. 0x0

    0x0 Новичок

    С нами с:
    29 авг 2013
    Сообщения:
    13
    Симпатии:
    0
    c DOM никогда не работал к сожалению((( не могу разобраться как с помощью него реализовать то что мне нужно
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Приходите вы, значит к стоматологу. Он такой вам - снимайте штаны, наклоняйтесь, будем удалять зуб через задницу. Вы такой - "Может через рот лучше?". Он в ответ - не, со ртом я не работал никогда, к сожалению, вы того, не стойте, сымайте, сымайте штанцы.

    Хороший программист при неимении альтернатив, отталкивается не от того, что знает, а от того, как правильно. И если он что-то не знает в достаточной мере, чтобы проблему решить, он ищет материал и изучает то, что поможет ему с решением. Ковырять DOM через регулярку, это все равно что дергать зубы через задницу. Увы.
     
  5. 0x0

    0x0 Новичок

    С нами с:
    29 авг 2013
    Сообщения:
    13
    Симпатии:
    0
    посмотрел и ознакомился, и чем же он поможет?

    мне надо не теги парсить, а разбить таблицу на части

    с помощью DOM вобщем тоже не получается реализовать то что мне нужно
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    D'OH! Только не говорите, что тупо погуглили что такое DOM, не пытаясь искать ничего на тему 'Dom php'...
     
  7. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Тут таблица не валидная. Ни регулярки, ни DOM не помогут.
     
  8. 0x0

    0x0 Новичок

    С нами с:
    29 авг 2013
    Сообщения:
    13
    Симпатии:
    0
    тема не актуальна, сам решил проблему путем добавления спец тега-маркера в конец таблицы, для того чтобы регулярка могла ориентироваться ))

    Fell-x27, я скачал готовые классы и попробовал - через DOM тупо логическая навигация и выделение html тегов в секции div->table->tr->td.style и т.д. это вообще мне не нужно было, мне надо было связать соседние теги и разделить таблицу