我是正则表达式的新手,我正在尝试编写一个将字符串分解为收缩和标点的函数。
例如: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', '.']