在Python中拆分文本,将逗号、句号等视为独立“单词”

4 投票
1 回答
1511 浏览
提问于 2025-04-18 07:31

我想把句子拆分成单词。通常我会用 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+ 其中的任意一个部分。

撰写回答