Django

Code

Changeset 3101

Show
Ignore:
Timestamp:
06/07/06 01:08:23 (2 years ago)
Author:
adrian
Message:

Added django.utils.text.smart_split. Thanks, ckknight

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/utils/text.py

    r2809 r3101  
    110110    return str(ustring_re.sub(fix, s)) 
    111111 
     112smart_split_re = re.compile('("(?:[^"\\\\]*(?:\\\\.[^"\\\\]*)*)"|\'(?:[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*)\'|[^\\s]+)') 
     113def smart_split(text): 
     114    for bit in smart_split_re.finditer(text): 
     115        bit = bit.group(0) 
     116        if bit[0] == '"': 
     117            yield (bit[1:-1].replace('\\"', '"').replace('\\\\', '\\'), True) 
     118        elif bit[0] == "'": 
     119            yield (bit[1:-1].replace("\\'", "'").replace("\\\\", "\\"), True) 
     120        else: 
     121            yield (bit, False)