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

如何解析字符串中的字符串字面量片段并生成Python列表?

提取字符串中双引号包裹的内容生成列表

给定字符串:

s = 'Hello, my name is "Bob" "I am 20 years old" I like to play "football"'

要提取其中所有被双引号包裹的内容,生成目标列表["Bob", "I am 20 years old", "football"],最直接的方法是用正则表达式:

正则表达式实现

import re

s = 'Hello, my name is "Bob" "I am 20 years old" I like to play "football"'
result = re.findall(r'"([^"]*)"', s)
print(result)

运行结果:

['Bob', 'I am 20 years old', 'football']

原理

正则r'"([^"]*)"'的作用:

  • 外层的"匹配字符串中的双引号边界
  • 括号内的[^"]*是捕获组,匹配除双引号外的任意字符([^"]表示排除双引号,*允许匹配0到多个符合条件的字符)
  • re.findall会自动收集所有捕获组的匹配结果,直接得到需要的列表

补充方法:shlex模块

如果需要处理更复杂的类shell格式字符串(比如嵌套引号、转义字符),可以用shlex模块:

import shlex

s = 'Hello, my name is "Bob" "I am 20 years old" I like to play "football"'
# 分割字符串,引号包裹的内容会被识别为单个元素
tokens = shlex.split(s)
# 若要筛选原被引号包裹的内容,可结合原字符串判断(比如包含空格或原位置有引号),但此场景下正则更高效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 04:15:50