我是正则表达式的新手,我正在尝试编写一个将字符串分解为收缩和标点的函数。

例如:I'm feeling sad today.

应该返回一个列表:["I","'m","feeling","sad","today","."]

到目前为止,我只能用([a-zA-Z])\w*过滤字母,而且我不确定如何过滤以包括标点符号。

最佳答案

import re

st = "I'm feeling sad today."

li = re.findall(r'\w+|[;.,!?:]|\'\w+',st)

['I', "'m", 'feeling', 'sad', 'today', '.']

09-26 23:31