Мені потрібно знайти в текстових рядках, які починаються з =?
і закінчується ?=
і перекласти їх. Я закінчив таким виразом:
re.sub("=?[w?-/=+:;_,[]()<>]+?=", decode_match, string)
Це працює в 95% випадків, але не вдається зі схожими рядками:
=?utf-8asdfaDDS23=eFF?=-=?utf-8?eadf-,=?=
Хтось може спробувати допомогти?
Відповіді:
0 для відповіді № 1Вам потрібен той випадок, де у вас є? без відповідності знаку? = у вашому шаблоні
"=?(?:[^?]|?[^=])+?="
0 для відповіді № 2
Чи str.split("=?")
зробити трюк?
0 для відповіді № 3
чому ти не пишеш?:
re.sub("=?.+??=", decode_match, string)
Цей регулярний вираз буде збігатися два рази в "=? Utf-8asdfaDDS23 = eFF? = - =? Utf-8? Eadf -, =? ="
"=?utf-8asdfaDDS23=eFF?="
"=?utf-8?eadf-,=?="
Це те, що ти хочеш? Викликаючи невдачу, ви повинні подавати її з більшою точністю.