6

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

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

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

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

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

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

2 ответа2

8

Пожалуйста, используйте \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: я понятия не имею, почему это перенесено сюда, мне пришлось приехать сюда впервые. :-)

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .