python - 用python字符串中的上标替换每个插入符号
问题描述
我想用 unicode 上标替换每个插入字符,以便在 python 中更好地打印方程。我的问题是,每个插入符号后面可能跟着一个不同的指数值,所以在 unicode 字符串 u'\u00b*' 中,* 通配符需要是我要在字符串中打印的指数。我认为一些正则表达式可以解决这个问题,但我的经验很少。
例如,假设我有一个字符串 "x^3-x^2" ,然后我希望将其转换为 unicode 字符串 u"x\u00b3-x\u00b2"
解决方案
您可以使用re.sub
andstr.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²
推荐阅读
- html - 您可以使用 SCSS 根据嵌套深度设置元素的填充吗?
- python - 合并两个geojson状态邮政编码文件?
- php - 如何用 替换空格
? - java - 有没有办法从默认构造函数中获取数据并在其他方法中使用它?
- python - 回溯错误:ModuleNotFoundError:没有名为“tensorflow.keras”的模块
- c - 显式转换为 C 中的隐式转换
- azure-devops - 是否有任何产品/服务称为 Azure DevOps Git?
- c# - 基于序列对数组进行排序
- sql - 如何将此 SQL 查询转换为 PySpark 代码?
- php - 使用 brew 将 PHP 更新到 7.4 macOS Catalina