使用regexp将utf8字符串拆分为多个部分

时间:2011-02-05 08:41:56

标签: python regex utf-8

我需要找到文本字符串,以=?开头,以?=结尾并翻译它们。我以这样的表达结束了:

re.sub('=\?[\w\?\-\/=\+\:\;_\,\[\]\(\)\<\>]+\?=', decode_match, string)

它可以在95%的情况下工作,但它失败了类似的字符串:

=?utf-8asdfaDDS23=eFF?=-=?utf-8?eadf-,=?=

有人可以尝试帮忙吗?

3 个答案:

答案 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-,=?='

这是你想要的吗?在引发失败时,你应该给它更精确。