Python 3.x 在字符串Python中找到的测量单位的转换器

Python 3.x 在字符串Python中找到的测量单位的转换器,python-3.x,units-of-measurement,Python 3.x,Units Of Measurement,大家好我来这里是因为我需要你们的帮助:) 我需要找到字符串中的度量单位并将其转换 在我的例子中,我在寻找克和毫克 示例: “文本…使用0.0075克”或 “文本…使用0.0075g”或 “文本…使用00075G” 我使用正则表达式查找度量单位: re.findall(r“(\d*\?(?:。|,)\d+)\s*(lbs?| g)”,text) 但我不确定如何获取这段匹配文本,请检查它们是克还是毫克 在克数乘以1000的情况下,修改字符串以获得:“文本文本…使用75mg” 非常感谢您的帮助和解释

大家好我来这里是因为我需要你们的帮助:)
我需要找到字符串中的度量单位并将其转换
在我的例子中,我在寻找克和毫克

示例:
“文本…使用0.0075克”或
“文本…使用0.0075g”或
“文本…使用00075G”

我使用正则表达式查找度量单位:
re.findall(r“(\d*\?(?:。|,)\d+)\s*(lbs?| g)”,text)

但我不确定如何获取这段匹配文本,请检查它们是克还是毫克
在克数乘以1000的情况下,修改字符串以获得:
“文本文本…使用75mg”


非常感谢您的帮助和解释。

您可以使用拆分方法分离出您感兴趣的内容:

string=“随机文本使用0.0075g”
check=string.split(“m”)
打印(支票)
如果检查[len(检查)-1]=“g”:
打印(“已在mg中”)
其他:
步骤=字符串。拆分(“”)
步骤2=步骤[len(step)-1]。拆分(“mg”)
newstring=“”.加入(步骤)
第3步=第2步[0]。拆分(“g”)
步骤4=浮动(步骤3[0])
newstring=newstring.replace(step2[0],str(step4*10000)+“mg”)
印刷品(新闻字符串)
我放置了许多“步骤”变量,以便您能够轻松理解

两个警告:

  • “使用0.75g”不正确->使用点作为昏迷“使用0.75g”

  • “使用0.75克”不正确->不要放置空格“使用0.75克”

您只需使用“quantulum3”,它有一个像样的解析器,解析后您可以检查单元名称并相应地进行乘法

from quantulum3 import parser
parser.parse("random text text text use 0.0075g")
#[Quantity(0.0075, "Unit(name="gram", entity=Entity("mass"), uri=Gram)")]

一个简单的规则是,如果
s工作正常,但假设字符串末尾是0.0075g。如果“随机文本使用0.0075g一些文本”无法正常工作,我不知道如何修复它。但是我已经修复了你写的缺点(逗号和数字与g之间的空格):)我用这个来查找数字:
import re string=“Random text word 0.0075g next text end.”pattern=re.search(r)(\d*\?\d+)\s*(g)”,string)如果pattern:numer=pattern.group()numer1=(numer.split(“g”))print(numer1[0])
然后我用了你写的东西,效果很好。有什么建议吗?有很多方法可以在列表中找到一个已知的字符串(您通过拆分获得的列表),但是如果您不知道确切的字符串,这可能会很困难。。。如果你的程序有效,它是必不可少的!Thx寻求帮助:)