ФорумПрограммированиеPython → Опять регулярные выражения

Опять регулярные выражения

  • polin11

    Сообщения: 41 Репутация: N Группа: Кто попало

    Spritz Авг. 7, 2017, 3:43 д.п.

    Есть HTML разметка, нужно вытащить контент из тега <p>, знаю как сделать 2 регулярными выражениями, можно ли сделать 1, в результате должно быть ["<b>111</b>", "222", "444"]
    html="<p class='one'><b>111</b></p><p name='two'>222</p><path>333</path><p>444</p><path class='three'>555</path>"
    tempTag=[]
    tempTag+=re.findall("<p\s.?>(.?)</p>", html)
    tempTag+=re.findall("<p\s?>(.*?)</p>", html)
    print(tempTag)

  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz Авг. 7, 2017, 10:20 д.п., спустя 6 часов 37 минут 11 секунд

    >>> html
    "<p class='one'><b>111</b></p><p name='two'>222</p><path>333</path><p>444</p><path class='three'>555</path>"
    >>> re.findall(r'<p(?: [^>]*)?>(.+?)</p>', html)
    ['<b>111</b>', '222', '444']
    
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Авг. 7, 2017, 3:19 п.п., спустя 4 часа 58 минут 32 секунды

    html контент надо через lxml вытаскивать, регулярками html обрабатывать плохая идея. Разве что шаблоны html статичны и им миллионы и нужна скорость. В остальных вариантах надо html парсерами это делать.

    Сапожник без сапог

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