Skip to main content
 首页 » 编程设计

python之使用正则表达式获取列表的第一个元素

2025年05月04日25bjzhanghao

我有以下格式的列表:

s = "['abc', 'xxx', '3c2', '111112', 'x']" 

如何获取元素“1”——[ 之后但 , 之前的项目。到目前为止,我有:

re.search(r'[.+,',s) 

但它太“贪心”了。这里正确的正则表达式是什么?

请您参考如下方法:

您的列表似乎是有效的 python,所以正则表达式不是一个选项(正则表达式不能可靠地解析编程语言)。考虑 ast.literal_eval相反:

>>> s = "['abc', 'xxx', '3c2', '111112', 'x']" 
>>> import ast 
>>> ast.literal_eval(s)[0] 
'abc' 

如果您坚持使用正则表达式,则必须创建一个简单的复杂表达式来匹配 python 文字。一个只处理单引号字符串的天真的例子是:

>>> s = "['abc', 'xxx', '3c2', '111112', 'x']" 
>>> import re 
>>> str_re = r"'(\\.|[^'])*'" 
>>> re.search(str_re, s).group(1) 
'abc' 

很明显,向其中添加双引号、多引号、原始字符串和字节字符串,并最终添加各种数字格式将是一项乏味且完全没有意义的工作;)