Вы можете сопоставить эти значения, используя
(?m)\b1001559\b.*(?:\n(?![\p{Zs}\t]*\d+[\p{Zs}\t])[\p{Zs}\t]{3,}.*?(?: (\d[\d.,]*) +(\d[\d,]*))?\r?$)+
См. Демонстрационную версию regex :
Подробности
(?m)
- Многострочный режим на \b
- граница слова 1001559
- число \b
- граница слова .*
- остаток строки (?:
- начало группы без захвата # 1: \n(?![\p{Zs}\t]*\d+[\p{Zs}\t])
- новая строка без 0+ горизонтальных пробелов, 1+ цифр и горизонтальных пробелов [\p{Zs}\t]{3,}
- три или более горизонтальных пробела .*?
- 0 или больше символов, кроме новой строки, как можно меньше (?:
- начало группы без захвата # 2:
- пробел (\d[\d.,]*)
- группа 1: ди git, за которым следуют 0 или более цифр, .
или ,
символов +
- 1+ пробелов (\d[\d,]*)
- группа 2: ди git, за которым следуют 0 или более цифр, .
или ,
символов
)?
- конец группа № 2, соответствует 1 или 0 раз \r?$
- дополнительный CR и привязка конца строки
)+
- конец группы без захвата # 1.
См. VB. NET демо онлайн :
Imports System
Imports System.Text.RegularExpressions
Public Class Test
Public Shared Sub Main()
Dim strArtikel As String = "1001559"
Dim pattern As String = "(?m)\b" & strArtikel & "\b.*(?:\n(?![\p{Zs}\t]*\d+[\p{Zs}\t])[\p{Zs}\t]{3,}.*?(?: (\d[\d.,]*) +(\d[\d,]*))?\r?$)+"
Dim s As String = " 22001 kerbs A4, 12/15/25cm, G341, R0.50, in plywood packages" & vbCrLf & " red mark - Jujia 9,36 m Yuan 119,12 Yuan 1.114,96 68010000" & vbCrLf & " 22014 kerbs A4, 12/15/25cm, G341, R12.00, in plywood packages" & vbCrLf & " red mark - Jujia 12,14 m Yuan 119,12 Yuan 1.446,12 68010000" & vbCrLf & " order No. 1800883" & vbCrLf & " 1001559 middlepieces to kerbs A4/A5, 20cm high, R6.00," & vbCrLf & " frontedge rounded R=2 cm, in plywood packages" & vbCrLf & " red mark - Jujia 50,27 m Yuan 99,12 Yuan 4.982,76 68010000"
Dim matches As MatchCollection = System.Text.RegularExpressions.Regex.Matches(s, pattern)
For Each m As Match In matches
Console.WriteLine("Matches for '" & strArtikel & "'....")
Console.WriteLine(m.Groups(1).Value)
Console.WriteLine(m.Groups(2).Value)
Next
End Sub
End Class
Выход:
Matches for '1001559'....
4.982,76
68010000