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

17968
a CVn

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

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

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

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

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

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

6

2 ответа на вопрос

8
YOU

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

Я не мог заставить `\ 1` работать в TextPad 7.0.9, только` 1 $ 'будет работать и только если есть две или более групп. В противном случае мне пришлось бы использовать `$ &`. дрянь Conrad Frix 10 лет назад 1
0
user238719

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

Похожие вопросы