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
Другие вопросы по тегам