Skip to main content
 首页 » 编程设计

python regexp方法返回一个包含空元素的列表

2025年05月04日13zhenyulu

我正在学习如何在 Python 中使用正则表达式。我正在搜索字符串中的模式并返回该字符串中的值。这是我到目前为止的代码。

import re 
 
string = '20180515_154457_Trace3_110K_2_data.dpt' 
pattern = r'_Trace3_(\d+)K_\d+_data.dpt' 
re.search(pattern,  string).groups() 

以上返回 ('110', )。为什么它不直接返回 ('110')?为什么它给我一个第二个元素为空的元组?

请您参考如下方法:

Why does it give me a tuple with an empty second element?

没有。这是一个只有一个元素的元组。

('110') 是一个字符串,而 ('110',) 是一个元素的元组。

您始终可以通过简单的类型运行来澄清自己:

In [1584]: type(('110')) 
Out[1584]: str 
 
In [1585]: type(('110',)) 
Out[1585]: tuple 

作为附加说明,括号 (()) 只是为了避免歧义,在任何明确的情况下,如果没有它,它也会被视为一个元组:

In [1587]: foo = 100, 
 
In [1588]: type(foo) 
Out[1588]: tuple