Не правильное регулярное выражение
<div class="t m0 xd h373 y2d ff1b9 fs5c fc0 sc0 ls0 ws0">R-234</div><div class="t m0 xd h373 y5867 ff1b8 fs5c fc0 sc0 ls0 ws0"> </div><div class="t m0 xd h373 y2f ff1b8 fs5c fc0 sc0 ls0 ws0">1/9/2007</div><div class="t m0 xd h373 y1793 ff1b8 fs5c fc0 sc0 ls0 ws0"> </div><div class="t m0 x29 h373 y2d ff1b8 fs5c fc0 sc0 ls0 ws0">06BSA007K</div><div class="t m0 x29 h373 y5867 ff1b8 fs5c fc0 sc0 ls0 ws0"> </div><div class="t m0 x29 h373 y2f ff1b8 fs5c fc0 sc0 ls0 ws0">175-05-BZ</div><div class="t m0 x29 h373 y1793 ff1b8 fs5c fc0 sc0 ls0 ws0"> </div><div class="t m0 x29 h373 y138 ff1b8 fs5c fc0 sc0 ls0 ws0">2007000014464</div><div class="t m0 x6e h373 y2d ff1b8 fs5c fc0 sc0 ls0 ws0">Hazmat<span class="_ _c6"> </span>520<span class="_ _19d"> </span>13,16<span class="_ _14a"> </span> </div><div class="t m0 xd h19f y1651 ff1b8 fs6 fc0 sc0 ls0 ws0"> </div></div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
Пытаюсь выцепить содержимое вот этих дивов
<div class="t m0 xd h373 y2d ff1b9 fs5c fc0 sc0 ls0 ws0">содержимое </div>
для этого написал такое регулярное выражение
r = re.findall(r'<div class="t \w{2,} \w{2,} \w{2,} \w{3,} \w{3,} \w{3,} \w{3,} \w{3,} \w{3,} \w{3,}">.{1,}</div>', line)
вместо ожидаемого массива оно возвращает полностью всю эту строку
<div class="t m0 xd h373 y2d ff1b9 fs5c fc0 sc0 ls0 ws0">R-234</div><div class="t m0 xd h373 y5867 ff1b8 fs5c fc0 sc0 ls0 ws0"> </div><div class="t m0 xd h373 y2f ff1b8 fs5c fc0 sc0 ls0 ws0">1/9/2007</div><div class="t m0 xd h373 y1793 ff1b8 fs5c fc0 sc0 ls0 ws0"> </div><div class="t m0 x29 h373 y2d ff1b8 fs5c fc0 sc0 ls0 ws0">06BSA007K</div><div class="t m0 x29 h373 y5867 ff1b8 fs5c fc0 sc0 ls0 ws0"> </div><div class="t m0 x29 h373 y2f ff1b8 fs5c fc0 sc0 ls0 ws0">175-05-BZ</div><div class="t m0 x29 h373 y1793 ff1b8 fs5c fc0 sc0 ls0 ws0"> </div><div class="t m0 x29 h373 y138 ff1b8 fs5c fc0 sc0 ls0 ws0">2007000014464</div><div class="t m0 x6e h373 y2d ff1b8 fs5c fc0 sc0 ls0 ws0">Hazmat<span class="_ _c6"> </span>520<span class="_ _19d"> </span>13,16<span class="_ _14a"> </span> </div><div class="t m0 xd h19f y1651 ff1b8 fs6 fc0 sc0 ls0 ws0"> </div></div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
что я не правильно написал в регулярном выражении?
Ответы (1 шт):
Автор решения: Sergey Tatarincev
→ Ссылка
В регулярном выражении нет захвата (смволов группировки). В этом случае результат регулярного выражения - вся совпадающая строка. Вам надо примерно так:
r = re.findall(r'<div class=".*">(.{1,})</div>', line);
print r;