将列表转换为字符串,同时保持逐字逐句

时间:2016-04-18 17:26:08

标签: python regex python-2.7

沮丧地说我对这个感到难过。我正在从段落中提取文字:

    paragraphs = re.findall(r'(<p(.*?)</p>)', html)

然后我想废弃标签,并逐字逐句地保留段落文字:

    paragraphs = re.sub(r'\<.*?\>', '', paragraphs)

问题是Python需要一个字符串。如果我理解正确,我必须先将“段落”变成字符串。但是,当我这样做时:

    paragraphs = str(paragraphs)

......我逐字逐句地收到文字,这些文字被分开了。好吧,我是Python的新手,这让我很困惑。

第一个问题:为什么“段落”不是一个字符串开头?

第二个问题:如何将“paragraph”转换为字符串,逐字逐句地保留,例如:

    paragraph = ['Two', 'words']

1 个答案:

答案 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']