【发布时间】:2017-01-30 03:18:03
【问题描述】:
我正在使用以下正则表达式将作为字符串传入的短语拆分为单词列表。
因为可能还有其他字母,所以我使用的是 UTF 标志。这在大多数情况下都很有效:
phrase = 'hey look out'
word_list = re.split(r'[\W_]+', unicode(phrase, 'utf-8').lower(), flags=re.U)
word_list [u'hey', u'look', u'out']
但是,如果该短语是一个以这样的句点结尾的句子,它将在列表中创建一个空白值:
phrase = 'hey, my spacebar_is broken.'
word_list [u'hey', u'my', u'spacebar', u'is', u'broken', u'']
我的解决方法是使用
re.split(r'[\W_]+', unicode(phrase.strip('.'), 'utf-8').lower(), flags=re.U)
但我想知道有没有办法在正则表达式中解决它?
【问题讨论】: