我有生日_气球。\u202egpj
如果我打印(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)