我不确定如何准确传达我想做的事情,但我正在尝试创建一个函数来拆分我的字符串的一部分(前导空格),以便我可以用不同的方式编辑它我的脚本的一部分,然后在更改后再次将其添加到我的字符串中。
假设我有字符串:
" That's four spaces"
我想拆分它,所以我最终得到:
" " and "That's four spaces"
最佳答案
您可以使用 re.match
:
>>> import re
>>> re.match('(\s*)(.*)', " That's four spaces").groups()
(' ', "That's four spaces")
>>>
(\s*)
在字符串的开头捕获零个或多个空白字符,而 (.*)
获取其他所有字符。
请记住,字符串在 Python 中是不可变的。从技术上讲,您不能编辑它们的内容;您只能创建新的字符串对象。
对于非 Regex 解决方案,您可以尝试这样的事情:
>>> mystr = " That's four spaces"
>>> n = next(i for i, c in enumerate(mystr) if c != ' ') # Count spaces at start
>>> (' ' * n, mystr[n:])
(' ', "That's four spaces")
>>>
这里的主要工具是next
, enumerate
, 和一个 generator expression .此解决方案可能比 Regex 解决方案更快,但我个人认为第一个更优雅。
关于python - 从字符串的其余部分拆分前导空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26749322/