2010-01-10 3 views
0

У меня эти две строки в старом сценарии Perl. Когда я пишу эквивалент Python, я получаю всевозможные ошибки, такие как valueerror: invalid \x escape и прочее о кодировании.Как сделать эти регулярные выражения Perl совместимыми с Python?

$line =~ s/[^\x{8}-\x{7B}]/ /ig; 
$line =~ s/(Û|²|°|±|É|¹|Í)/ /g; 

Что нужно сделать, чтобы заставить их работать в Python?

ответ

1

Я не слишком большой с Perl регулярное выражение, но я думаю, что, возможно, решил это:

invalid_range = re.compile(r'[^\x08-\x7B]', re.I) 
invalid_unicode = re.compile(ur'(Û|²|°|±|É|¹|Í)') 
line = re.sub(invalid_range , '', line) 
line = re.sub(invalid_unicode, '', line) 
+0

спасибо, что работал – Incognito

0

По вопросам кодирования, если вы хотите поместить символы Unicode в источнике напрямую, вам нужно убедитесь, что интерпретатор Python знает, что такое кодировка вашего файла. См:

Смежные вопросы