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

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

  • polin11

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

    Spritz 6 августа 2017 г. 20: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

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

    Spritz 7 августа 2017 г. 3: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

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

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

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

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

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