2016-04-07 12 views
0

正規表現を使用してこの関数を単純化したいと思います。 サンプル入力が可能この関数の正規表現

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

マイコード:

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 

答えて

0

が、これはあなたが何をしたいですか?

+0

いいえ...値がすでに辞書に存在する場合、私のコードのロジックでわかるように、その単語をそのままスキップしたいと思います。 –