我想用unicode上标替换每个插入符号,以便在python中更好地打印方程式。我的问题是,每个插入号都可能跟有不同的指数值,因此在Unicode字符串u'\ u00b *'中,*通配符必须是我要在字符串中打印的指数。我想一些正则表达式可以解决这个问题,但是我的经验很少。
例如,假设我有一个字符串 “ x ^ 3-x ^ 2” ,然后我希望将其转换为unicode字符串 u“ x \ u00b3-x \ u00b2”
答案 0 :(得分:3)
您可以使用re.sub
和str.translate
来捕获指数并将其更改为unicode上标。
import re
def to_superscript(num):
transl = str.maketrans(dict(zip('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²