2016-04-07 17 views
0

Ich möchte diese Funktion mit regulären Ausdrücken vereinfachen. der Probeneingang kannRegulärer Ausdruck für diese Funktion

text =' At&T, " < I am > , At&T so &#60; &lt; & & ' 

Mein Code sein:

def replaceentity(text): 
    import re 
    import uuid 
    from cgi import escape 
    invalid_chars_map = {'&':'&#38;', '<':'&#60;', '>': '&#62;', '"': "&#34;"} 
    replace_values = {'&lt;':'&#60;', '&gt;':'&#62;'} 
    replaced_dict = {} 
    for key, value in replace_values.items(): 
     text = text.replace(key, value) 
    print "after replace >>>>>> " + text 
    for word in text.split(): 
     if word in invalid_chars_map.values(): 
      print word 
      uid = str(uuid.uuid4()) 
      text = text.replace(word, uid) 
      replaced_dict[uid] = word 
    text = escape(text) 
    for i in replaced_dict.keys(): 
     text = text.replace(i, replaced_dict[i]) 
    print text 

Antwort

0

Ist das, was Sie wollen?

+0

Nein ... wie Sie in der Logik meines Codes sehen können, wenn der Wert bereits im Wörterbuch vorhanden ist, möchte ich dieses Wort überspringen, da es nicht ersetzen möchte & von dem –