发票包含单词Invoice,后面是发票顶部区域的发票号,例如IN280625-3/4
:
Payer:_xxxxxxx
Waybill Invoice_IN280625-3/4 Nimetus_EAN
Invoice issuer: John
Selle Invoice tasumisel_palume m lisada Kesolev Invoice on poolte
vahel Invoice mittetähtaegsel tasumisel on müüjal õigus nõuda viivist 0,1% tasumata summalt päevas.
Kuni Invoice_IN280625-3/4 payment xxx
使用c#.NET 8 regex提取发票号IN280625-3/4
(?si).*Invoice[\s_:.]+(?<anr>[^\s_]+).+
由于单词发票多次占用,因此组ANr返回最后匹配payment
.如何获得第一场比赛?Word Invoice可能出现在不同单词组合的文本中,因此搜索模式无法增强.如何从单词invoice
后的文本顶部获取第一个单词?
测试 case 为https://regex101.com/r/vvDZpU/1
如何迫使它返回IN280625-3/4
而不是payment
?
.NET 8 RegExp.是否匹配此选项?
使用穿过文本顶部
var algus = tekst.IndexOf("Invoice", StringComparison.InvariantCultureIgnoreCase);
var tekst2 = tekst.Substring(algus, algus + 40);
var cnr2 = @"(?si).*Invoice[\s_:.]+(?<anr>[^\s_]+).+";
var match = RegExp.Match(tekst2, cnr);
有效,但也许有更好的 Select .