I en UCS-2-build bruger python 2 kodeenheder internt for hvert unicode-tegn over \U0000ffff
kodepunkt. Regulære udtryk skal fungere sammen med dem, så du skal bruge følgende regulære udtryk for at matche disse:
highpoints = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')
Dette regulære udtryk matcher ethvert kodepunkt, der er kodet med et UTF-16 surrogatpar (se UTF-16 Kodepunkter U+10000 til U+10FFFF .
For at gøre dette kompatibelt på tværs af Python UCS-2 og UCS-4 versioner, kan du bruge en try:
/except
at bruge det ene eller det andet:
try:
highpoints = re.compile(u'[\U00010000-\U0010ffff]')
except re.error:
# UCS-2 build
highpoints = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')
Demonstration på en UCS-2 python-build:
>>> 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: '