我想用 unicode 上标替换每个插入符号字符,以便在 python 中更好地打印方程式。我的问题是,每个插入符号后面可能跟着不同的指数值,因此在 unicode 字符串 u'\u00b*' 中,* 通配符必须是我想在字符串中打印的指数。我认为一些正则表达式可以为此工作,但我在这方面的经验很少。
例如,假设我有一个字符串 "x^3-x^2" ,然后我希望将其转换为 unicode 字符串 u"x\u00b3-x\u00b2">
您可以使用re.sub
和str.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²