Найти и заменить переупорядоченным форматом даты в блокноте ++ - PullRequest
22 голосов
/ 02 декабря 2010

У меня есть файл с несколькими тысячами строк для добавления в базу данных MySQL. В строках есть значения даты в формате дд-мм-гггг, но они нужны в формате гггг-мм-дд.

Например, '11-04-2010', должно стать '2010-04-11', в каждом ряду.

Есть ли простой способ сделать это в notepad ++ или другом текстовом редакторе?

Ответы [ 4 ]

34 голосов
/ 02 декабря 2010

Вы можете сделать это с помощью Textpad:

Найти: ([0-9]+)-+([0-9]+)-+([0-9]+)

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

8 голосов
/ 06 октября 2012

Чтобы убедиться, что вы переупорядочиваете только неправильные форматы (если вы используете смешанные форматы из объединенных баз данных), используйте это:

([0-9]{2})-+([0-9]{2})-+([0-9]{4})

Этот поиск (четыре цифры, тире, две цифры, тире, две цифры).

В редакторе с поддержкой регулярных выражений, таком как notepad ++, замените его следующим:

\3-\2-\1

В таком инструменте, как libre office, его необходимо заменить следующим:

$3-$2-$1 

Редактировать: я написал в блоге об этом, так как это кажется распространенной проблемой: http://bytethinker.com/blog/correct-date-format-with-notepad-and-regex

2 голосов
/ 10 февраля 2018

Использовал Notepad ++ для изменения мм / дд / гггг на гггг / мм / дд в нескольких строках текстового файла. Скрипт был сохранен как макрос для следующего файла.

Найти: ([0-9] {2}) / + ([0-9] {2}) / + ([0-9] {4}) Заменить: \ 3 / \ 1 / \ 2

0 голосов
/ 16 апреля 2019

Еще один надежный шаблон, который работает с форматом даты ISO значения типа "2010-11-30T00: 00: 00.266Z"

Захват групп различных элементов представления даты ISO

"(\ d {4}) - (\ д {1,2}) - (\ д {1,2}) Т ([0-2] \ г): ([0-5] \ д ): ([0-5] \ г) (:?.??? \ d +) Z \ с "

В общей сложности шесть групп собираются в этом шаблоне, седьмая группа в конце, содержащая «?:», Не захватывает, то есть она не сохраняет значения, записанные группой, просто игнорирует их.

Шесть групп, которые мы захватили, имеют номера, основанные на позициях, таких как \ 1 \ 2 \ 3 ... до \ 6.

Шаблон замены для замены этой даты на поддерживаемый базой данных формат даты, в основном используемый в значениях Oracle, таких как - "30.11.2010 00:00:00 AM"

"\ 2 / \ 3 / \ 1 \ 4: \ 5: \ 6 AM"

Хорошо работает с Notepad ++ Удачи!

...