У меня есть строка типа 2005:10:29 12:23:53
, и я хочу заменить только первые два вхождения :
на -
Ожидаемый результат 2005-10-29 12:23:53
РЕДАКТИРОВАТЬ:
Мне нужно это регулярное выражение в инструменте krename
KDE, где я не могу редактировать / форматировать оригинальный [exifExif.Image.DateTime]
, который возвращает нежелательный формат 2005:10:29 12:23:53
, но есть Find and Replace
для пост-обработки String
(?<=\d{4}):|:(?=\d{2}\s)
выполняет работу на рублевом , но не в KDE: (
Я уверен, что есть и другие решения.
РЕДАКТИРОВАТЬ:
:(?=\d{2}:\d{2}\s)|:(?=\d{2}\s)
работает даже на KDE
Я нашел это решение после того, как прочитал
You can use a full-fledged regular expression inside the lookahead.
Most regular expression engines only allow literal characters and
alternation inside lookbehind, since they cannot apply regular
expression backwards.
в учебник по регулярным выражениям