在python中拆分文本但将逗号,句号等视为单独的“单词”

时间:2014-05-25 11:58:02

标签: python regex

我试图将句子分解成单词。通常情况下我会使用textstring.split(' '),但我也希望单独拆分逗号和句号,所以“不,谢谢”将分为["No", ",", "thank", "you"]而不是["No,", "thank", "you"]。< / p>

我想过这样做:

textstring.replace(",", " ,").replace(".", " .").split(' ')

但这感觉有点哈哈。有没有更好的方法呢?

1 个答案:

答案 0 :(得分:5)

我们可以使用像这样的正则表达式将它们分开

textstring = "No, thank you"
import re
print re.findall(r'\w+|\S+', textstring)
# ['No', ',', 'thank', 'you']

\w+将获得所有连续的字母数字字符,_\S将获得所有连续的非空格字符。 |表示匹配\w+\S+部分。