python正则表达式百分数_使用正则表达式获取匹配字符串的百分比

我试试看:import re

full_pattern = re.compile(r"^([a-z][a-z]?)?(\d\d\d\d)?([a-z][a-z]?[a-z]?)?$")

num_pos_matches = 3 # 9 groups in our reg

list_of_test_cases = ["aa1234bb","aa1234","1234bb","aabb","+pow","aa","1234","b5555bb"]

def get_match_percentage(in_str):

m = re.match(full_pattern,in_str)

if m == None:

return 0

m_g = m.groups()

counter = 0

for x in m_g:

if x == None:

counter+=1

return round((1 - counter/num_pos_matches) * 100,2)

# print some tests

for test_case in list_of_test_cases:

print(test_case, " matched ",get_match_percentage(test_case), "% of the ",num_pos_matches, " Regex groups")

通过输出:

^{pr2}$

我认为肯定有一些失败的例子,例如我希望"123dfg"给出{},但是它产生了123dfg matched 0 % of the 3 Regex groups

所以你可以按摩一下来解决这些问题。很多功劳归功于@ctwheels的团队理念。在

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值