我有一个清除任何特殊字符的 php 函数,现在我想在 Python 中创建一个类似 php 的函数。
我的php函数:
function cleanString($text)
{
$utf8 = array(
'/[áàâãªä]/u' => 'a',
'/[ÁÀÂÃÄ]/u' => 'A',
'/[ÍÌÎÏ]/u' => 'I',
'/[íìîï]/u' => 'i',
'/[éèêë]/u' => 'e',
'/[ÉÈÊË]/u' => 'E',
'/[óòôõºö]/u' => 'o',
'/[ÓÒÔÕÖ]/u' => 'O',
'/[úùûü]/u' => 'u',
'/[ÚÙÛÜ]/u' => 'U',
'/ç/' => 'c',
'/Ç/' => 'C',
'/ñ/' => 'n',
'/Ñ/' => 'N',
'/–/' => '-', // UTF-8 hyphen to "normal" hyphen
'/[’‘‹›‚]/u' => ' ', // Literally a single quote
'/[“”«»„]/u' => ' ', // Double quote
'/ /' => ' ', // nonbreaking space (equiv. to 0x160)
);
return preg_replace(array_keys($utf8), array_values($utf8), trim($text));
}
我在 Python 中尝试过,如下所示:
def clean(text):
utf8 = {
'/[áàâãªä]/u' : 'a',
'/[ÁÀÂÃÄ]/u' : 'A',
'/[ÍÌÎÏ]/u' : 'I',
'/[íìîï]/u' : 'i',
'/[éèêë]/u' : 'e',
'/[ÉÈÊË]/u' : 'E',
'/[óòôõºö]/u' : 'o',
'/[ÓÒÔÕÖ]/u' : 'O',
'/[úùûü]/u' : 'u',
'/[ÚÙÛÜ]/u' : 'U',
'/ç/' : 'c',
'/Ç/' : 'C',
'/ñ/' : 'n',
'/Ñ/' : 'N',
'/–/' : '-', # UTF-8 hyphen to "normal" hyphen
'/[’‘‹›‚]/u' : ' ', # Literally a single quote
'/[“”«»„]/u' : ' ', # Double quote
'/ /' : ' ', # nonbreaking space (equiv. to 0x160)
}
return re.sub(utf8.keys(), utf8.values(), text.strip())
但显示错误消息如下:
unhashable type: 'dict_keys'