假设我有一组字符串,如下所示:
"5 m^2"
"17 sq feet"
"3 inches"
"89 meters"
Run Code Online (Sandbox Code Playgroud)
是否有一个Python包,它将读取这些字符串,将它们转换为SI,并以易于使用的形式返回结果?例如:
>>> a=dream_parser.parse("17 sq feet")
>>> a.quantity
1.5793517
>>> a.type
'area'
>>> a.unit
'm^2'
Run Code Online (Sandbox Code Playgroud) 我正在尝试从文本中提取尺寸和单位。
数据可能看起来像任何东西:
53 英寸 x 45 英寸
10 英寸乘 5 英寸
53" 宽 x 74" 长 x 15" 高
53 英寸宽 x 74 英寸长 x 15 英寸高
有一些帖子涵盖了前两种情况,但我无法理解如何处理这里的情况 3 和 4。
这是我尝试了从基础做起这个,但不知它不工作:
import re
regex = r"(?<!\S)\d+(?:,\d+)?\s*(?:inch|in| in|\")* ?x ?\d+(?:,\d+)?(?: ?x ?\d+(?:,\d+)?)*\s*(?:inch| inch|in| in|\")*"
test_str = ("15 mm x 2 mm x 3")
result = re.findall(regex, test_str)
print(result)
Run Code Online (Sandbox Code Playgroud)
另外,我只想提取这些,因为我正在使用Quantulum来提取其他数值,但在这种情况下它失败了。因此,非常感谢有关如何合并这两个事物以共同发挥作用的任何指导。
谢谢你的帮助
我试图用正则表达式匹配长度宽度和高度。
我有以下情况
Artikelgewicht3,7 Kg
Produktabmessungen60,4 x 46,5 x 42 cm
or
Artikelgewicht3,7 Kg
Produktabmessungen60 x 46 x 42
or
Artikelgewicht3,7 Kg
Produktabmessungen60 x 46
Run Code Online (Sandbox Code Playgroud)
第二种情况可以与 匹配(\d+) x (\d+) x (\d+),效果很好。
我进一步尝试将第一个和第三个案例与(\d+)(\\,\d+)? x (\d+)(\\,\d+)? x (\d+)(\\,\d+)?.
任何建议我做错了什么?