我正在学习如何在 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
