python - 从字符串的其余部分拆分前导空格

标签 python string split

我不确定如何准确传达我想做的事情,但我正在尝试创建一个函数来拆分我的字符串的一部分(前导空格),以便我可以用不同的方式编辑它我的脚本的一部分,然后在更改后再次将其添加到我的字符串中。

假设我有字符串:

"    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/

相关文章:

python - Linux:写入 python 解释器进程的 stdin 并让该进程将输入评估为代码

javascript - 通过http请求发送字符串

java - 如何在Java中每第n次出现字符时分割字符串

python - 字符串列表中字符串出现的双重列表理解

python - 将 Python 字典转换为未嵌套的 JSON 对象

python - 使用 PyYAML 创建 pandas DataFrame 对象 - 超出递归深度

Python NOOP 替换

java - 存储字符串列表的最佳方式

python - 使用 python 的字符串格式化库的问题

perl - 如何拆分三个不同的分隔符然后 ucfirst 每个结果[]?