我正在用python解析一个spice文件,其中包含字符串数学表达式,并且我正在将文本文件转换为python脚本。你知道吗
文件中的数学表达式示例如下:
expr = 'k1 + 4.35k + 3.69meg*(pow(2.4u, 2*km2))'
我想找到表达式中的所有比例因子,并将它们转换为指数值:
scaling_factors = {
'g' : 'e9',
'meg': 'e6',
'k' : 'e3',
'm' : 'e-3',
'u' : 'e-6',
'n' : 'e-9',
}
我想要的结果是:
converted_expr = 'k1 + 4.35e3 + 3.69e6*(pow(2.4e-6, 2*km2))'
我试过这个:
digits_re = r"([0-9]*\.[0-9]+|[0-9]+)k"
sample = 'k1 + 4.3k'
print(re.sub(digits_re, digits_re.replace('k', 'e3'), sample))
输出:
k1 + \\de3
但它不起作用
使用负先行(
(?<=...)
)确保符号前有一个数字,并使用单词边界断言(\b
)捕获“km2”大小写:如果要避免多次执行此操作,请使用函数作为替换值:
当
re.sub
的第二个参数是一个函数时,不会用文本替换匹配项,而是用match对象调用该函数,并将其返回值用作替换值。你知道吗写得有点快,所以可能不完美,但像这样的东西?你知道吗
输出:
我不确定是否有这样的图书馆。你知道吗
其中一条评论建议您可以使用结构更换,但您必须编写自己的循环和如果条件,因为您只想在字母正确的位置替换它们。你知道吗
我知道这并不能马上给你答案,但它可以指引你走向正确的道路。你知道吗
相关问题 更多 >
编程相关推荐