有没有办法在字符串中匹配这样的模式?
模式(不区分大小写):"\bfactuur(nummer)" **OR** "Nr." **OR** "Nr(:)"
后跟实际值"\d+"
或"d{3,4} - d{3,4}"
。
很高兴(如果它实际上不是超现实的):qazxsw poi忽略了qazxsw poi之间的一切。
测试:
"Factuur\n"
演示正则表达式:
"Nr." "\d+"
您的正则表达式只需要进行两次更改即可使其适用于所有样本。你可以使用这个正则表达式,
Factuur: 2018-4005
Factuur
Nr. 90424571
Factuurnummer: 2019-010
factuur : 281319261
factuurnummer: 63
Factuurnummer: 281319264565
Factuur assdg 236373
Factuurnummer 281319265
Factuurnummer 0723 - 1345
Factuur nr. 180262
Factuurnummer : 6322232
https://regex101.com/r/PuGrqn/37
以下是我做的两个更改,
\bfactuur(?:nummer|\n)?.*?(?<=\s)(\d+(?:\s*-\s*\d+)?)(?=\s|$)
,然后只需将Check online demo与nummer
交替进行\n
增强到nummer
以使其不仅匹配数字,而且还可选地匹配一些可选的空格然后连字符然后再一些可选的空格最后跟一个数字,这就是我在(\d+)
之后添加(\d+(?:\s*-\s*\d+)?)
的原因希望这能解决问题。如果您有任何进一步的样品,请告诉我。
编辑:用于捕获这样的字符串
(?:\s*-\s*\d+)?
可以使用此正则表达式增强模式以捕获由空格或连字符分隔的多个数字,
\d+
Factuurnummer Factuurdate 1234 3-21-2019