using System;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
string pattern = @"(?im)^Invoice[\p{Zs}\t]+Nr\.?\s*(?<arvenumber>[^\W_]+)[\s_]";
string input = @"...
Some nr_11687767_ other 101308591
Invoice Nr.
M230714_some text
Kirjeldus
...
Sometimes it is terminated by newline
...
This nr_11687767_KMKR_EE101308591
Invoice Nr.
M230714
01.05.2023
Item
...
or by other white space delimiter :
...
Some nr_11687767_ Text
Invoice Nr M230714 Date 01.05.2023
Desc
...";
foreach (Match m in Regex.Matches(input, pattern))
{
Console.WriteLine("'{0}' found", m.Groups["arvenumber"].Value);
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJc3RyaW5nIHBhdHRlcm4gPSBAIig/aW0pXkludm9pY2VbXHB7WnN9XHRdK05yXC4/XHMqKD88YXJ2ZW51bWJlcj5bXlxXX10rKVtcc19dIjsKICAgICAgICBzdHJpbmcgaW5wdXQgPSBAIi4uLgpTb21lIG5yXzExNjg3NzY3XyBvdGhlciAxMDEzMDg1OTEKSW52b2ljZSBOci4KTTIzMDcxNF9zb21lIHRleHQKS2lyamVsZHVzCi4uLgpTb21ldGltZXMgaXQgaXMgdGVybWluYXRlZCBieSBuZXdsaW5lCgouLi4KVGhpcyBucl8xMTY4Nzc2N19LTUtSX0VFMTAxMzA4NTkxCkludm9pY2UgTnIuCk0yMzA3MTQKMDEuMDUuMjAyMwpJdGVtCi4uLgpvciBieSBvdGhlciB3aGl0ZSBzcGFjZSBkZWxpbWl0ZXIgOgoKLi4uClNvbWUgIG5yXzExNjg3NzY3XyBUZXh0Ckludm9pY2UgTnIgTTIzMDcxNCAgIERhdGUgMDEuMDUuMjAyMwpEZXNjCi4uLiI7CgogICAgICAgICAgICBmb3JlYWNoIChNYXRjaCBtIGluIFJlZ2V4Lk1hdGNoZXMoaW5wdXQsIHBhdHRlcm4pKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiJ3swfScgZm91bmQiLCBtLkdyb3Vwc1siYXJ2ZW51bWJlciJdLlZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCQp9