在Python中拆分文本,将逗号、句号等视为独立“单词”
我想把句子拆分成单词。通常我会用 textstring.split(' ')
,但是我还想单独把逗号和句号也拆分开来,所以像“No, thank you”这样的句子应该被拆分成 ["No", ",", "thank", "you"]
,而不是 ["No,", "thank", "you"]
。
我想到了这样做:
textstring.replace(",", " ,").replace(".", " .").split(' ')
不过这样做感觉有点不太正规。有没有更好的方法呢?
1 个回答
5
我们可以用正则表达式把它们分开,像这样:
textstring = "No, thank you"
import re
print re.findall(r'\w+|\S+', textstring)
# ['No', ',', 'thank', 'you']
\w+
可以获取所有连续的字母和数字字符,还有 _
符号;而 \S
则可以获取所有连续的非空格字符。这里的 |
表示可以匹配 \w+
或者 \S+
其中的任意一个部分。