我一直在阅读这篇文章Return only one group with OR condition in Regex,以了解如何在匹配中只得到一个组。不知何故,这对我的模式不起作用。
- 这里是使用的字符串:*
Ledigingen 4 lediging € 32,48 € 50,92 21,00 %
van 01-01-2019 t/m 31-01-2019
Huur 1 Maand € 8,63 € 8,63 21,00 %
toeslag over € 50,42 (21% BTW) € 2,76 21,00 %
(WHITESPACE) Totaal exclusief BTW € 50,18
BTW hoog (21%) € 50,18 € 50,89
totaal inclusief BTW € 70,07
字符串
目前它提取每个发生的金额。有没有一种方法可以只得到值后跟[Tt]otaa?l excl/incl BTW
?
我想我一直在使用积极/消极的前瞻错误。
给定输入的期望输出为:
€ 50,18
€ 70,07
型
DEMO的
RegEx
(?!<=[tT]otaa?l\s*?.*?)([€$]\s*\d+(?:[,.]\d{0,2})?)
型
1条答案
按热度按时间gcuhipw91#
如果您正在使用注解中提到的UIPath,则可以使用:用途:
字符串
模式匹配:
(?<=
正向后看,Assert左边是\b[Tt]otaa?l\s+(?:ex|in)cl
匹配单词totaal
或Totaal
后跟excl
或incl
[^€$]*
匹配€
或$
以外的可选字符)
关闭lookbehindAssert[€$]
匹配€
或$
之一\s*
匹配可选的空白字符\d+(?:[,.]\d{1,2})?
将1+位与可选小数部分匹配\b
防止部分字匹配的字边界参见.NET regex demo
为了匹配
inclusief BTW
或exclusief BTW
部分,更具体的正则表达式可以是:型
另见.NET regex demo