разбить строки utf8 на части с помощью регулярного выражения - PullRequest
0 голосов
/ 05 февраля 2011

Мне нужно найти в текстовых строках, которые начинаются с =? и заканчиваются ?= и переводить их.Я закончил с таким выражением:

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

Он работает в 95% случаев, но не работает с похожими строками:

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

Может кто-нибудь попытаться помочь?

Ответы [ 3 ]

0 голосов
/ 05 февраля 2011

Тебе нужен случай, когда у тебя есть?без соответствия? = в вашем шаблоне

'=\?(?:[^?]|\?[^=])+\?='
0 голосов
/ 05 февраля 2011

почему ты не пишешь?:

re.sub('=\?.+?\?=', decode_match, string)

Это регулярное выражение будет соответствовать два раза в '=? Utf-8asdfaDDS23 = eFF? = - =? Utf-8? Eadf -, =? ='

'=?utf-8asdfaDDS23=eFF?='

'=?utf-8?eadf-,=?='

Это то, что вы хотите?При возникновении сбоя вы должны дать его с большей точностью.

0 голосов
/ 05 февраля 2011

str.split('=?') делает трюк?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...