我需要找到文本字符串,以=?
开头,以?=
结尾并翻译它们。我以这样的表达结束了:
re.sub('=\?[\w\?\-\/=\+\:\;_\,\[\]\(\)\<\>]+\?=', decode_match, string)
它可以在95%的情况下工作,但它失败了类似的字符串:
=?utf-8asdfaDDS23=eFF?=-=?utf-8?eadf-,=?=
有人可以尝试帮忙吗?
答案 0 :(得分:0)
str.split('=?')
能做到这一点吗?
答案 1 :(得分:0)
你需要你的情况吗?没有在你的模式中匹配?=
'=\?(?:[^?]|\?[^=])+\?='
答案 2 :(得分:0)
re.sub('=\?.+?\?=', decode_match, string)
这个正则表达式会在'=?utf-8asdfaDDS23 = eFF?= - =?utf-8?eadf - ,=?='
中匹配两次'=?utf-8asdfaDDS23=eFF?='
'=?utf-8?eadf-,=?='
这是你想要的吗?在引发失败时,你应该给它更精确。