Редактировать:
.*(REQ_.*?)\|
Хитрость есть ?
говорит предшествующий .*
чтобы остановить как можно раньше. Таким образом, первый |
что следует, заканчивает сферу действия .*
Это именно то, что вы хотите.
Мой старый ответ ниже. Это работает хорошо, но я думаю, что вышесказанное - правильный путь.
Старый ответ:
.*
соответствует (почти) всему, включая |
, Используйте [^|\n]*
чтобы сопоставить все, кроме |
и новая строка.
.*(REQ_[^|]*)\|
\n
необходимо, потому что чистый [^|]*
может охватывать совпадение по нескольким строкам. Я думаю, ты не хочешь этого.