正则表达式findall查html,使用re.findall在正则表达式中捕获命名组

当我试图回答这个问题:

regex to split %ages and values in python我注意到我必须从findall的结果重新排序组.例如:

data = """34% passed 23% Failed 46% deferred"""

result = {key:value for value,key in re.findall('(\w+)%\s(\w+)',data)}

print(result)

>>> {'Failed': '23','passed': '34','deferred': '46'}

这里findall的结果是:

>>> re.findall('(\w+)%\s(\w+)',data)

>>> [('34','passed'),('23','Failed'),('46','deferred')]

有没有办法更改/指定使re.findall返回的组的顺序:

[('passed','34'),('Failed','23'),('deferred','46')]

只是为了澄清,问题是:

是否可以指定顺序或重新排序组以返回re.findall函数?

我使用上面的示例创建了一个字典,以便在您想要更改顺序时提供原因/用例(将键作为值和值作为键)

进一步澄清:

为了处理更大更复杂的正则表达式中的组,您可以命名组,但只有在执行re.search pr re.match时才能访问这些名称.根据我的阅读,findall对元组中返回的组有一个固定的索引,问题是任何人都知道如何修改这些索引.这将有助于使组的处理更容易和直观.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值