Я пытаюсь сопоставить определенные строки текста с определенной строкой в RegEx (PCRE). Вот пример:
000000
999999900
20.10.19
Amoxicillin 1000 Heumann 20 Filmtbl. N2 - PZN: 04472730
-
Dr. Max Mustermann
В этом тексте я хотел бы точно подобрать эту часть:
Amoxicillin 1000 Heumann 20 Filmtbl. N2
Сходство всегда является частью с PZN и 7-8цифра за этим в конце каждой строки, которую я хочу сопоставить. Однако иногда часть PZN может находиться в следующей строке, а не непосредственно за ней:
000000
999999900
20.10.19
Amoxicillin 1000 Heumann 20 Filmtbl. N2
- PZN: 04472730
-
Dr. Max Mustermann
Так что она находится либо непосредственно позади нее, либо в следующей строке. Я пытался сделать это, используя этот RegEx:
.*(?=[ \-\r\n]+PZN)
Это работает, однако, в первом примере выше, это соответствует этому:
Amoxicillin 1000 Heumann 20 Filmtbl. N2 -
Обратите внимание на "-"в конце. Это не должно быть включено в матч. Я полагаю, что RegEx отдает приоритет части .*
, так как она работает слева направо, и поэтому удаляет только последний символ предпросмотра. Я не могу обернуть голову относительно того, как сделать это иначе.
Есть идеи?