You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python:如何按空格分割字符串且保留'\n'字符?

解决字符串分割保留换行符的问题

我明白你的需求啦——想把字符串按空格分割,但要保留换行符在对应元素里,同时去掉每个元素前后多余的空格对吧?之前用split()会把所有空白字符(包括换行)都当成分隔符去掉,splitlines(True)又会保留每行的前后空格,确实都不符合预期。给你两个实用的解决方法:

方法一:字符串方法组合(适合你的特定场景)

用lstrip()清理开头空格,再用partition()精准分割换行加空格的位置,最后拼接出目标结果:

a = ' girl\n is'
# 先去掉字符串开头的空格
stripped_start = a.lstrip()
# 按"\n "(换行+空格)分割成三部分
prefix, _, suffix = stripped_start.partition('\n ')
# 拼接出想要的元素
result = [prefix + '\n', suffix.lstrip()]
print(result)  # 输出: ['girl\n', 'is']

方法二:正则表达式(更通用)

如果以后遇到类似结构的长字符串(比如' apple\n banana\n cherry'),用正则匹配会更灵活,能精准提取带换行的单词和普通单词:

import re
a = ' girl\n is'
# 匹配带换行的单词或普通单词,自动忽略前后空格
result = re.findall(r'\s*(\w+\n|\w+)\s*', a)
print(result)  # 输出: ['girl\n', 'is']

这个正则的逻辑很简单:

  • \s*:匹配任意数量的空格(包括元素前后的)
  • (\w+\n|\w+):捕获我们需要的两种元素——要么是「单词+换行符」,要么是「普通单词」

这样就能完美得到你想要的结果啦~

内容的提问来源于stack exchange,提问作者Jassy.W

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:21:55