我在堆栈溢出中寻找了相当多的答案,但没有弹出。阅读提供的链接后,它仍然不明显,但我理解。也许保存此帖子对将来像我一样思考的人有帮助。
我已将3.7 vs 2.7问题简化为一个非常简单的代码段:
import re
myStr = "Mary had a little lamb.\n"
reg_exp = re.compile('[ \\n\\r]*')
reg_exp.split(myStr)
['', 'M', 'a', 'r', 'y', '', 'h', 'a', 'd', '', 'a', '', 'l', 'i', 't', 't', 'l', 'e', '', 'l', 'a', 'm', 'b', '.', '', '']
在python 2.7中,我得到了完整的单词标记。我想将编译行修改为贪婪*而不拆分字符。
如果我不包括贪婪*我会得到多余的空格。
reg_exp = re.compile('[ \\n\\r]')
reg_exp.split(myStr)
['Mary', '', 'had', 'a', 'little', 'lamb.', '']
我也想吃我的蛋糕!这就是我想要的:
['Mary', 'had', 'a', 'little', 'lamb.']
我尝试了各种方法,例如各种标志。我缺少一些非常基本的东西。你能帮我吗?谢谢!