@register.filter def bbcode(value): bbdata = [ (r'\[url\](.+?)\[/url\]', r'\1'), (r'\[url=(.+?)\](.+?)\[/url\]', r'\2'), (r'\[email\](.+?)\[/email\]', r'\1'), (r'\[email=(.+?)\](.+?)\[/email\]', r'\2'), (r'\[img\](.+?)\[/img\]', r''), (r'\[img=(.+?)\](.+?)\[/img\]', r'\2'), (r'\[b\](.+?)\[/b\]', r'\1'), (r'\[i\](.+?)\[/i\]', r'\1'), (r'\[u\](.+?)\[/u\]', r'\1'), (r'\[quote\](.+?)\[/quote\]', r'
\1
'), (r'\[center\](.+?)\[/center\]', r'
\1
'), (r'\[code\](.+?)\[/code\]', r'\1'), (r'\[big\](.+?)\[/big\]', r'\1'), (r'\[small\](.+?)\[/small\]', r'\1'), ] for bbset in bbdata: p = re.compile(bbset[0], re.DOTALL) value = p.sub(bbset[1], value) return value