我很难使用这个正则表达式。我正试图匹配以";CCD_ 1";其以";CHF
";。
要搜索的文本是:
Zwischentotal 0,00 13,24 906,79 CHF
Zahlbetrag 0,00 13,25 906,80 CHF
到目前为止我的正则表达式:
(?<=Zahlbetrag)(?:.*?)((d+,d{2})(?=([s]*)CHF))
此操作的结果当前(使用https://regex101.com/):
Match 1: 0,00 13,25 906,80
Group 1: 906,80
Group 2: 906,80
Group 3:
但我需要第一场比赛:
Match 1: 906,80
它应该只包括最后一个数字,而不是整行。有人知道如何做到这一点吗?
您可以使用
Zahlbetrag.*?Kd+,d{2}(?=s*CHF)
请参阅regex演示详细信息:
Zahlbetrag
-文字字符串.*?
-零个或多个字符(换行字符除外(,尽可能少K
-省略到目前为止匹配的文本d+
-一个或多个数字,
-逗号d{2}
-两位数(?=s*CHF)
-与紧接着零个或多个空白然后是Zahlbetrag
0的位置相匹配的正向前瞻
pattern = r"([d,]*) CHF$"
st = "Zahlbetrag 0,00 13,25 906,80 CHF"
result = re.search(pattern, st)
result[1]= '906,80'