Vim Regex дает неверный вывод
У меня есть список дат (ГГГГ-М или ГГГГ-ММ) и хочу префикс 0
до первых 9 месяцев для последовательности. Формат данных: Дата в ГГГГ-М или ГГГГ-ММ, за которыми следуют запятая и номер. Например:
2012-1,789
2012-11,563
2012-1,789
следует изменить на 2012-01,789
, Запись "2012-11,563" должна остаться без изменений.
Правильный вывод должен быть:
2012-01,789
2012-11,563
Я пытался следовать регулярному выражению в Vim.
:%s/-\(\d\),/-0\0,/g
Тем не менее, я получаю следующий вывод:
2012-0-1,789
2012-11,563
Почему я получаю дополнительную черту -
между двумя цифрами?
1 ответ
Решение
Захват номера группы начинается с 1
не из 0
,
Так что команда должна быть:
:%s/-\(\d\),/-0\1,/g