Регулярное выражение заменить на текстовую панель

Мне нужно обновить формат даты в большом файле, который у меня есть в textpad.

формат даты в настоящее время мм-дд-гггг, и мне нужно сделать его мм / дд / гггг

каждая строка с датой начинается с D.

как это: D02-12-2009

Моя часть поиска по регулярному выражению работает нормально ^ D (.?) - (.?) - (. *?)?, Но замена не удалась при попытке использовать $1 $2 $3 для моих значений D$1/$2/$3. Он заменяется литералом $1, $2 и $ 3. Я установил textpad для использования регулярных выражений POSIX.

Любые идеи, как захватить ценности и поместить их в мою часть замены?

2 ответа

Пожалуйста, используйте \1 \2 \3 вместо $1 $2 $3

Найти то, что: D([0-9]+)-([0-9]+)-([0-9]+)

Заменить: D\1/\2/\3

До

D02-12-2009
D03-12-2009
D04-12-2009

После

D02/12/2009
D03/12/2009
D04/12/2009

Относительно группировки

Группирует теговое выражение для использования в выражениях замены. RE может иметь до 9 теговых выражений, пронумерованных в соответствии с их порядком в RE. Соответствующее выражение замены равно \x, для x в диапазоне 1-9. Пример: Если ([az]+) ([az] +) соответствует "неправильный путь", \2 \1 заменит его на "неправильный путь".

PS: я понятия не имею, почему это перенесено сюда, мне пришлось приехать сюда впервые.:-)

"каждая строка с датой начинается с D." Для большей безопасности я бы добавил "^" к выражению поиска: **^**D([0-9]+)-([0-9]+)-([0-9]+),
Маловероятно, что строка будет встречаться где-то еще, но...

Другие вопросы по тегам