using System;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
string pattern = @"(?i).*Invoice[\s_]?NR\.?[\s_:.](?<arvenumber>.*?)[\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/aSkuKkludm9pY2VbXHNfXT9OUlwuP1tcc186Ll0oPzxhcnZlbnVtYmVyPi4qPylbXHNfXSI7CiAgICAgICAgc3RyaW5nIGlucHV0ID0gQCIuLi4KU29tZSBucl8xMTY4Nzc2N18gb3RoZXIgMTAxMzA4NTkxCkludm9pY2UgTnIuCk0yMzA3MTRfc29tZSB0ZXh0CktpcmplbGR1cwouLi4KU29tZXRpbWVzIGl0IGlzIHRlcm1pbmF0ZWQgYnkgbmV3bGluZQoKLi4uClRoaXMgbnJfMTE2ODc3NjdfS01LUl9FRTEwMTMwODU5MQpJbnZvaWNlIE5yLgpNMjMwNzE0CjAxLjA1LjIwMjMKSXRlbQouLi4Kb3IgYnkgb3RoZXIgd2hpdGUgc3BhY2UgZGVsaW1pdGVyIDoKCi4uLgpTb21lICBucl8xMTY4Nzc2N18gVGV4dApJbnZvaWNlIE5yIE0yMzA3MTQgICBEYXRlIDAxLjA1LjIwMjMKRGVzYwouLi4iOwoKICAgICAgICAgICAgZm9yZWFjaCAoTWF0Y2ggbSBpbiBSZWdleC5NYXRjaGVzKGlucHV0LCBwYXR0ZXJuKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIid7MH0nIGZvdW5kIiwgbS5Hcm91cHNbImFydmVudW1iZXIiXS5WYWx1ZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgkKfQ==