我想构建一个正则表达式,以捕获字符串中的所有模式,在字符串中,在度量单位(ml,mg,kg等)之前存在整数或浮点数。我当前的正则表达式仅考虑整数,并且在存在空格时会中断。我想在我的代码中处理这些。
p = re.compile('[0-9](?:mg|kg|ml|q.s.|ui|M|g|µg)')
x = '0.9mg is the approximate dosage'
z = p.findall(x)
print(z)
对于小数点无效,并且在有空格时也会中断。
预期要捕获的模式是:
Examples: 0.9 mg, 9 mg, 9mg, 0.9mg
关于此的任何帮助
在代码中使用正则表达式:
mg = []
newregex = r"[0-9\.\s]+(?:mg|kg|ml|q.s.|ui|M|g|µg)"
for s in zz:
for e in extracteddata:
v = re.search(newregex,extracteddata,flags=re.IGNORECASE|re.MULTILINE)
if v:
mg.append(v.group(0))
最佳答案
您可以尝试以下操作:
([.\d]+)\s*(?:mg|kg|ml|q.s.|ui|M|g|µg)
Try it online.