Since Arabic character is rendered from right to left, the correct string below, which reads "from ?
to ?
" is rendered backward (try to select the string if you want to confirm):
'[?-?]'
Console output:
>>> re.compile('[?-?]')
<_sre.SRE_Pattern object at 0x6001f0a80>
>>> re.compile('[?-?]', re.DEBUG)
in
range (1575, 1610)
<_sre.SRE_Pattern object at 0x6001f0440>
So your pattern '[?-?]'
, is actually "from ?
to ?
", which is an invalid range, since the code point of ?
is smaller than code point of ?
.
To prevent confusion, Ignacio Vazquez-Abrams's suggestion of using Unicode escape is a good alternative to the solution I provide above.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…