Python: найдите предложение между некоторыми тегами сайта с помощью регулярных выражений - PullRequest
0 голосов
/ 11 ноября 2011

Я хочу найти предложение между тегами ...class="question-hyperlink">.С этим кодом:

import urllib2
import re

response = urllib2.urlopen('https://stackoverflow.com/questions/tagged/python')
html = response.read(20000)

a = re.search('question-hyperlink', html)
print html[a.end()+3:a.end()+100]

Я получаю:

DF5 for Python: high level vs low level interfaces. h5py</a></h3>        <div class="excerpt">

Как я могу остановиться на следующем <?И как мне найти следующее предложение?Я хочу сделать это с помощью регулярного выражения.

РЕДАКТИРОВАТЬ Для downvoters: я хочу сделать это так, как он: RegEx соответствует открытым тегам, за исключением автономных тегов XHTML

1 Ответ

4 голосов
/ 11 ноября 2011

Если вы должны сделать это с помощью регулярных выражений, попробуйте что-то вроде этого:

a = re.finditer('<a.+?question-hyperlink">(.+?)</a>', html)
for m in a: 
    print m.group(1)

Просто для справки, этот код делает то же самое, но гораздо более надежно:

doc = BeautifulSoup(html)
for a in doc.findAll('a', 'question-hyperlink'):
    print a.text
...