有一个实际的需求我构思了很久很久

来源:3-4 ROUND4:正则之重复匹配

全是甘货

2020-02-28 01:43

就是给字符串的每一个字符前后都确保有.* 

key = r'djaskljflkasdfjklfj'

p1 = r'(.)'

p2 = r'(.$)'

newkey = re.sub(p1,r'.*\1',key)

newkey = re.sub(p2,r'\1.*',newkey)

print(newkey)

-->.*d.*j.*a.*s.*k.*l.*j.*f.*l.*k.*a.*s.*d.*f.*j.*k.*l.*f.*j.*


以上我是经过了两次正则匹配,有没有办法一条正则就做到这一点呢

写回答 关注

1回答

  • yy326edu
    2020-03-05 13:45:04
    已采纳
    # 不知算不算满足同学需求
    import re
    key = r'djaskljflkasdfjklfj'
    p1 = r'(.)'
    p2 = lambda matched:".*"+ matched.group(0) if matched.span()[1] < matched.endpos else ".*"+ matched.group(0) + ".*"
    new_key = re.sub(p1,p2,key)
    print(new_key)


    全是甘货

    不算满足了,但你教会了我多个正则同时使用的方法,非常感谢!

    2020-03-07 15:09:28

    共 1 条回复 >

3小时玩转正则表达式

理论知识+有趣实战,带你快速高效掌握正则表达式

2182 学习 · 10 问题

查看课程

相似问题