我有这个字符串:
"birthday_balloons.\u202egpj"
如果我执行
print("birthday_balloons.\u202egpj")
它会输出
birthday_balloons.jpg
注意最后三个字符是如何颠倒的。我想以这样的方式处理字符串(“birthday_balloons.\u202egpj”),使其变成(“birthday_balloons.jpg”),字符的顺序就像它们显示的那样。
我怎样才能做到这一点?
\u202e
字符是 从右到左覆盖,其“兄弟”\u202d
是从左到右覆盖。
要解释这些字符,以便所有字符都按照打印顺序放置在字符串中,您可以使用此函数:
def apply_direction(s):
def recur(s, ltr):
try:
i = s.index("\u202d\u202e"[ltr])
except ValueError:
return s
return s[:i] + recur(s[i+1:], not ltr)[::-1]
return recur(s, True).replace("\u202d", "").replace("\u202e", "")
用于您的示例:
s = "birthday_balloons.\u202egpj"
s = apply_direction(s)
print(s) # birthday_balloons.jpg (last three characters reordered)