我有一个格式如下的文件:
3 name1
2 name2
1 name3
Run Code Online (Sandbox Code Playgroud)
数字和名称之间的空格可以是一个或多个空格,也可以是任意数量的选项卡.
我正在尝试找到一种方法来匹配此行与正则表达式,并提取列表或元组中的数字和名称.
我可以用几行来写这个,但我宁愿有一条清晰的线,既可以识别标签和空白,也可以给我我的价值观.我没有成功.
编辑:我已经尝试使用re.search('^[\d]+[\s|\t]+.*', line)匹配任意数量的数字,空格或制表符,然后是任何东西.但是,这并不工作-大概是因为我不告诉它什么来提取我.
您需要做的就是在想要捕获的内容周围添加parens:
>>> line='1\t abc'
>>> re.search('^(\d+)\s+(.*)', line).groups()
('1', 'abc')
Run Code Online (Sandbox Code Playgroud)
顺便提一下,请注意您使用的正则表达式以^仅在行开头匹配的正则表达式开头.因此,match可以代替search这里使用:
>>> re.match('(\d+)\s+(.*)', line).groups()
('1', 'abc')
Run Code Online (Sandbox Code Playgroud)