Регулярное выражение Java, чтобы найти или заменить первое вхождение, не теряя хвостовой текст - PullRequest
0 голосов
/ 26 ноября 2018

Мое регулярное выражение

SOME_STRING: .+\;$

Исходная строка

lorem ipsum; SOME_STRING: I_AM_OLD; tail text;

Мне нужно заменить I_AM_OLD на I_AM_NEW, но мое регулярное выражение заменяет все до концастрока, и я теряю хвостовой текст.

Я ожидал получить

lorem ipsum; SOME_STRING: I_AM_NEW; tail text;

1 Ответ

0 голосов
/ 26 ноября 2018

Регулярные выражения по умолчанию "жадные"..+ в вашем выражении соответствует всем символам до последнего ;.

Одним из возможных исправлений является сопоставление только тех символов, которые не ;:

SOME_STRING: [^;]+;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...