Я использую регулярное выражение для замены кавычек внутри входной строки. Мои данные содержат два «типа» котировок -Взять два типа котировок в регулярном выражении
" and “
Существует очень тонкая разница между ними. В настоящее время я оговаривая оба этот тип в моем регулярном выражении
\"*\“*
Боюсь, однако, что в будущем данные я могу получить другой «тип» цитаты, на котором мое регулярное выражение может выйти из строя. Сколько существует различных типов котировок? Есть ли способ нормализовать их только для одного типа, чтобы мое регулярное выражение не прерывалось для невидимых данных?
Редактировать -
Мой ввод данных состоит из HTML-файлов, и я спасаясь HTML сущности и URL-адреса в ASCII
escaped_line = HTMLParser.HTMLParser().unescape(urllib.unquote(line.decode('ascii','ignore')))
где линия указывает, каждая строка в HTML-файле. Мне нужно «игнорировать» ASCII, поскольку все файлы в моей базе данных не имеют одинаковой кодировки, и я не знаю кодировки перед чтением файла.
Edit2
Я не могу сделать это, используя функцию замены. Я попытался заменить («"»,„“), но он не заменяет другой тип цитаты««». Если добавить его в другой заменить функцию он бросает мне ошибку символов не-ASCII.
Состояние
Никакие внешние библиотеки не допускаются, могут быть использованы только нативные библиотеки Python.
Замена кавычек вряд ли является задачей для регулярных выражений. Я бы получил список котировок (unicode?) И выполнил обычную «замену». –
@Lev Levitsky: Как именно здесь работает юникод? Я не могу это сделать, используя функцию replace. Я попытался заменить ('' ',' '), но он не заменяет другой тип цитаты' ''. Если я добавлю его в другую функцию замены, это вызовет ошибку символа NON-ASCII. Я новичок в unicode. – Dexter
Похоже, что ваш вызов 'urllib.unquote' запускается в следующую, но неразрешенную ошибку Python: http://bugs.python.org/issue8136 – Abel