V sestavení UCS-2 používá python interně 2 kódové jednotky pro každý znak unicode přes \U0000ffff
kódový bod. Regulární výrazy s nimi musí pracovat, takže k jejich shodě budete muset použít následující regulární výraz:
highpoints = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')
Tento regulární výraz odpovídá libovolnému bodu kódu zakódovanému pomocí náhradního páru UTF-16 (viz UTF-16 Kódové body U+10000 až U+10FFFF .
Aby to bylo kompatibilní napříč verzemi Pythonu UCS-2 a UCS-4, můžete použít try:
/except
pro použití jednoho nebo druhého:
try:
highpoints = re.compile(u'[\U00010000-\U0010ffff]')
except re.error:
# UCS-2 build
highpoints = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')
Ukázka na sestavení UCS-2 python:
>>> import re
>>> highpoints = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')
>>> example = u'Some example text with a sleepy face: \U0001f62a'
>>> highpoints.sub(u'', example)
u'Some example text with a sleepy face: '