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

如何按空格拆分字符串但忽略单双引号内的内容?

按空格拆分字符串但忽略引号内空格的实现方法

需求:将输入字符串按连续空格拆分为列表,单引号或双引号包裹的内容作为单个元素,忽略引号内部的空格。例如输入:
me you "us and them" 'everyone else' them
拆分后得到:

  • me
  • you
  • us and them
  • everyone else
  • them

方法一:使用Python的shlex模块

shlex模块专门用于解析类Shell的字符串,原生支持识别单、双引号,自动处理引号内的空格,同时合并外部连续空格,完全符合需求:

import shlex

input_str = 'me   you   "us and them"   \'everyone else\' them'
split_result = shlex.split(input_str)

# 输出结果
for item in split_result:
    print(item)

执行后输出:

me
you
us and them
everyone else
them

方法二:使用正则表达式

如果不想依赖shlex模块,可以用正则表达式匹配引号内内容和非空白序列:

import re

input_str = 'me   you   "us and them"   \'everyone else\' them'
# 正则模式:匹配双引号内容、单引号内容、非空白字符序列
pattern = r'"([^"]*)"|\'([^\']*)\'|(\S+)'
matches = re.findall(pattern, input_str)
# 提取有效分组内容
split_result = [group[0] or group[1] or group[2] for group in matches]

# 输出结果
for item in split_result:
    print(item)

此正则会依次匹配双引号包裹的内容、单引号包裹的内容,最后匹配不含空格的连续字符,通过提取分组内容得到拆分后的列表。

内容的提问来源于stack exchange,提问作者sthames42

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 05:15:55