Skip to main content
 首页 » 编程设计

python之从 python 正则表达式中提取两个值

2025年05月04日31wayfarer

我有一个格式如下的文件:

3 name1 
2    name2 
1    name3 

数字和名字之间的空格可以是一个或几个空格,也可以是任意多个制表符。

我正在尝试找到一种方法将此行与正则表达式匹配并提取列表或元组中的数字和名称。

我可以用几行来写这个,但我宁愿有一个既能识别制表符又能识别空格并给我值的干净的行。我一直没有成功。

编辑:我尝试使用 re.search('^[\d]+[\s|\t]+.*', line) 来匹配任意数量的数字,或者空格或制表符,然后是任何东西。但这不起作用 - 大概是因为我没有告诉它 为我提取什么。

请您参考如下方法:

您需要做的就是在要捕获的内容周围添加括号:

>>> line='1\t abc' 
>>> re.search('^(\d+)\s+(.*)', line).groups() 
('1', 'abc') 

顺便说一句,请注意您使用的正则表达式以 ^ 开头,它仅匹配行的开头。因此,可以在此处使用 match 代替 search:

>>> re.match('(\d+)\s+(.*)', line).groups() 
('1', 'abc')