gpt4 book ai didi

python - 正则表达式向前看和向后看

转载 作者:行者123 更新时间:2023-12-03 15:26:59 29 4
gpt4 key购买 nike

我有以下两种抓取数据的变体:

   txt =  '''Käuferprovision: 3 % zzgl. gesetzl. MwSt.''' # variation 1
    txt = '''Käuferprovision: Die Courtage i.H.v. % 3,57 inkl. MwSt. ist''' # variation 2
我想做 以浮点数形式获取百分比的正则表达式,因此在第一个实例中 3.0 在第二个 3.57
到目前为止我已经尝试过这个:
m = re.search(r'.{3}.%.{5}',txt)
txt = m.group().split("%")[1:]
txt = ("".join(txt)).replace(",",".")
print(txt)
这适用于变体 2 但不适用于变体 1。

最佳答案

您可以尝试使用此代码获取百分比值并将其转换为 float :

>>> import re
>>> arr = ['Käuferprovision: 3 % zzgl. gesetzl. MwSt.', 'Käuferprovision: Die Courtage i.H.v. % 3,57 inkl. MwSt. ist']
>>> rx = re.compile(r'\d+(?:[.,]\d+)*(?=\s*%)|(?<=%)\s*\d+(?:[.,]\d+)*')
>>> for s in arr:
... for m in rx.finditer(s): print (float(m.group().replace(',', '.')))
...
3.0
3.57
RegEx Demo
Online Code Demo

关于python - 正则表达式向前看和向后看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66787763/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com