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

用python字符串中的上标替换每个插入符号,python,python-3.x,Python,Python 3.x,我想用unicode上标替换每个插入符号字符,以便在python中更好地打印等式。我的问题是,每个插入符号后面都可能有不同的指数值,因此在unicode字符串u'\u00b*'中,*通配符必须是我要在字符串中打印的指数。我想一些正则表达式可以解决这个问题,但我的经验很少 例如,假设我有一个字符串 “x^3-x^2” ,然后我希望将其转换为unicode字符串 u“x\u00b3-x\u00b2”您可以使用re.sub和str.translate捕获指数并将其更改为unicode上标 import

我想用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(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)
输出
您可以使用
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)
输出
@克里斯,你应该让我们看看你的attempt@Chris只要unicode文本,您应该向我们展示您的尝试