如果我有例如這個字串:
Beschreibung Menge VK-Preis MwSt% Betrag
Schadenbewertunginkl.Restwertermittlung 1 25,00€ 19 25,00€
Rechnungsbetragexcl.MwSt.: 25,00€
MwSt.(19%): 4,75€
Rechnungsbetragincl.MwSt.: 123.029,75€
我想提取所有的數字。我的正則運算式是:
regex_up_to_thousand = r'\b(?:\d{1,3}){1}(?:,{1}\d{2})\b'
和
regex_every_price = r'\b(?:\d{1,3}(\.|,)) (:?\d{3}(\.|,))(?:\d{2})\b'
我的想法是首先獲得“大”價格,從文本中洗掉它們并獲得其他數字。Wich 在大多數情況下都有效,直到我有一個看起來像這樣的日期
Gutachtennummer: 1009126 Leistungsdatum: 11.10.2021
我會用我的第二個正則運算式得到 11.10,但我不知道如何防止這種情況。我認為這\b會有所幫助,但遺憾的是沒有。
有任何想法嗎?這不是世界末日,因為我在后臺做了很多數學運算,但日期可能會適合某些值,而我最終會計算出錯誤的東西。
uj5u.com熱心網友回復:
您可以嘗試以下模式。
\b\d (?:(?:\.|,)\d{3})*(?:(?:\.|,)\d{2})\b(?!\W\d)
最重要的是(?!\W\d)最后確保在您的金額之后您不會有 1 個非單詞字符后跟 1 個數字的構造。
示例:https ://regex101.com/r/q1ic9S/1
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/461247.html
標籤:python-3.x 正则表达式
