问答详情
源自:3-4 ROUND4:正则之重复匹配

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

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

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.*


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

提问者:全是甘货 2020-02-28 01:43

个回答

  • 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)