Ignore:
Timestamp:
Apr 28, 2011 1:52:45 PM (13 years ago)
Author:
vmaksymiv
Message:

added unescaping functionality

File:
1 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/util.py

    r3141 r3189  
    11from AccessControl import ClassSecurityInfo 
     2from htmlentitydefs import entitydefs 
     3import re 
    24 
    35try: 
     
    4547except: 
    4648    pass 
     49 
     50 
     51def _group_unescape(m): 
     52    if m.group("ent"): 
     53        try: 
     54            return entitydefs[m.group("ent")] 
     55        except KeyError: 
     56            return m.group(0) 
     57    if m.group("dec"): 
     58        return unichr(int(m.group("dec"))) 
     59    if m.group("hex"): 
     60        return unichr(int(m.group("hex"), 16)) 
     61 
     62expr = re.compile(r'&(?:(?P<ent>\w+?)|'\ 
     63                   '#(?P<dec>\d{1,10})|'\ 
     64                   '#x(?P<hex>[0-9a-fA-F]{1,8}));') 
     65 
     66 
     67def unescape(s): 
     68    result = expr.sub(_group_unescape, s) 
     69 
     70    if isinstance(s, unicode): 
     71        return result 
     72    else: 
     73        return unicode(result) 
Note: See TracChangeset for help on using the changeset viewer.