沮丧地说我对这个感到难过。我正在从段落中提取文字:
paragraphs = re.findall(r'(<p(.*?)</p>)', html)
然后我想废弃标签,并逐字逐句地保留段落文字:
paragraphs = re.sub(r'\<.*?\>', '', paragraphs)
问题是Python需要一个字符串。如果我理解正确,我必须先将“段落”变成字符串。但是,当我这样做时:
paragraphs = str(paragraphs)
......我逐字逐句地收到文字,这些文字被分开了。好吧,我是Python的新手,这让我很困惑。
第一个问题:为什么“段落”不是一个字符串开头?
第二个问题:如何将“paragraph”转换为字符串,逐字逐句地保留,例如:
paragraph = ['Two', 'words']
答案 0 :(得分:2)
re.findall()
会返回匹配的列表。您需要re.search()
代替。
更好的选择是使用 HTML Parser ,例如BeautifulSoup
:
>>> from bs4 import BeautifulSoup
>>>
>>> data = '<p>some text here</p>'
>>> soup = BeautifulSoup(data, "html.parser")
>>> soup.p.get_text().split()
[u'some', u'text', u'here']