【发布时间】:2018-08-19 00:21:59
【问题描述】:
我看了很多关于堆栈溢出的答案,但什么都没有弹出。阅读提供的链接后仍然不明显,但我理解。也许保存这篇文章可以帮助未来像我一样思考的人。
我已将我的 3.7 与 2.7 问题简化为一个非常简单的代码 sn-p:
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.']
我尝试过各种各样的事情,比如各种标志。我错过了一些非常基本的东西。你能帮我吗?谢谢!
【问题讨论】:
-
是 Python 3.7 吗?实际上,您希望在所有情况下得到什么输出?
-
也许您想要
+而不是*?实际上,您允许在有 0 个或更多空格的地方发生拆分,即 everywhere。 -
在您将其标记为重复后,我再次尝试。如果您愿意提供链接,我可以在正确分类这个问题方面取得一些进展。我得到了答案,所以我很高兴我还是问了......谢谢!