草庐IT

python - 如何解析和简化像 '3cm/µs² + 4e-4 sqmiles/km/h**2' 这样正确处理物理单位的字符串?

我想将3cm/µs²+4e-4sqmiles/km/h**2这样的字符串拆分成它的SIunit(在本例中,m/s**2)及其大小(以该单位的倍数表示)。因为sympy提供了parsingmodule和manyphysicalunitsandSIprefixes,我想使用sympy是个好主意。但是实现这一目标的好方法是什么?我会编写如下算法,但我想避免重新发明方轮:将数字和字母(4e-4类语法除外)和空格(除非它紧挨着显式运算符)之间的转换视为乘法,然后标记化用其SI表示替换每个非数字标记(同时检查SI前缀)将新表达式简化为Magnitude*someSIunits(在单位不一致时给出有