【问题标题】:Converting list into string while keeping it word by word将列表转换为字符串,同时逐字保存
【发布时间】:2016-04-19 10:00:08
【问题描述】:

很沮丧地说我被这个难倒了。我正在从段落中提取文本:

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

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

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

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

    paragraphs = str(paragraphs)

…我一个字母一个字母地得到文本,单词被打散了。好吧,我是 Python 新手,这让我很困惑。

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

第二个问题:如何将“段落”转换成字符串,逐字逐句,如:

    paragraph = ['Two', 'words']

【问题讨论】:

    标签: python regex python-2.7


    【解决方案1】:

    re.findall() 返回匹配的列表。你需要re.search()

    更好的选择是使用 HTML 解析器,例如 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']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-04
      • 1970-01-01
      相关资源
      最近更新 更多