<p>我用的是:</p>
<pre><code>def _doStringSEOptiomization(objectName,pageName,lang,objectId):
"""
Prende in input il nome di un'offerta e svolge dei passi:
1- Trasforma tutte le variazioni delle vocali
in vocali normali
2- Attraverso una serie di REGEX, elimina i caratteri non desiderati e torna
una stringa da inserire in un link adatto ai motori di ricerca e alle indicizzazioni
"""
try:
import re #importo il modulo per le REGEX
Speaker.log_debug(GREEN("core.ws_site.do_sites_offers_data_redux._doStringSEOptiomization() input: objectName=%s, pageName=%s, lang=%s, objectId=%s" % (objectName,pageName,lang,objectId)))
#mappa dei caratteri html-entity e unicode
vocalMap = { 'a' : ['&agrave;','&aacute;','&acirc;','&atilde;','&auml;','&aring;','&aelig;','&#224;','&#225;','&#226;','&#227;','&#228;','&#229;','&#257;','&#230;'],
'e' : ['&egrave;','&eacute;','&ecirc;','&euml;','&#232;','&#233;','&#234;','&#235;','&#275;'],
'i' : ['&igrave;','&iacute;','&icirc;','&iuml;','&#236;','&#237;','&#238;','&#239;','&#299;'],
'o' : ['&ograve;','&oacute;','&ocirc;','&oelig;','&otilde;','&ouml;','&#242;','&#243;','&#244;','&#339;','&#245;','&#246;','&#333;'],
'u' : ['&ugrave;','&uacute;','&ucirc;','&uuml;','&#249;','&#250;','&#251;','&#252;','&#363;']
}
objectName = objectName.lower() #trasformo la stringa di partenza in caratteri minuscoli
for vocale, lista in vocalMap.iteritems(): #per ogni elemento della mappa avrà una chiave ed una lista
for elemento in lista: #itero su tutti gli elementi della lista
objectName = objectName.replace(elemento,vocale) #sostituisco nel nome dell'offerta, la vocale all' HTML-entity
objectName = objectName.replace("/","-")
objectName = re.sub("[^a-z0-9_\s-]","",objectName) #######################################
objectName = re.sub("[\s-]+"," ",objectName) #strippo tutti i caratteri non voluti:#
objectName = re.sub("[\s_]","-",objectName) #######################################
objectName = pageName+"--"+objectName
objectName += "-"+lang+"-"+str(objectId) #aggiungo la lingua e l'id dell'offerta
except Exception,s:
Speaker.log_error("_doStringSEOptiomization(): Error=%s"%RED(s))
return objectName
</code></pre>
<p>你必须适应你的情况。在</p>