将每个插入符号替换为 python 字符串中的上标



我想用 unicode 上标替换每个插入符号字符,以便在 python 中更好地打印方程式。我的问题是,每个插入符号后面可能跟着不同的指数值,因此在 unicode 字符串 u'\u00b*' 中,* 通配符必须是我想在字符串中打印的指数。我认为一些正则表达式可以为此工作,但我在这方面的经验很少。

例如,假设我有一个字符串 "x^3-x^2" ,然后我希望将其转换为 unicode 字符串 u"x\u00b3-x\u00b2">

您可以使用re.substr.translate来捕获指数并将其更改为Unicode上标。

import re
def to_superscript(num):
transl = str.maketrans('1234567890', '¹²³⁴⁵⁶⁷⁸⁹⁰')
return num.translate(transl)
s = 'x^3-x^2'
out = re.sub('^s*(d+)', lambda m: to_superscript(m[1]), s)
print(out)

输出

x³-x²

最新更新