- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Друзья, помогите пожалуйста с регуляркой.
нужно из даты такого формата: 2011.13марта
сделать дату нормального (мускульного формата) YYYY-MM-DD
Думаю тут нужно как-то год переставить в конец (остальное в принципе можно автозаменой исправить).
Ну и еще вопрос: встречаются даты такого формата: 2011.март
И даже просто 2011г.
Спасибо всем откликнувшимся.
Регулярное выражение которое находит последовательность
(\d{4})\.(\d{2})([а-я]+)$
Вывод последовательности
\1-\3-\2
Замена зависит от языка на котором реализован парсер.
(\d{4})\.(\d{2})([а-я]+)$
[а-я] некорректно, русские буквы не идут подряд, как латинские.
ТС, если месяц будете заменять автозаменой, то регулярка не нужна, можно сделать что-то вроде:
implode('', (array_reverse( explode('.'), '2011.13марта') )
cims, Ladycharm, спасибо большое! наставили меня на правильный путь.
Сделал так: $new_date=implode('', (array_reverse( explode('.', $date)) ));
т.к. с [а-я] и правда были проблемы.
Еще раз благодарю!
cims, Ladycharm, спасибо большое! наставили меня на правильный путь.
Сделал так: $new_date=implode('', (array_reverse( explode('.', $date)) ));
т.к. с [а-я] и правда были проблемы.
Еще раз благодарю!
Честно говоря, cims-овский путь более стильный, строгий и правильный, вот его рабочая регулярка:
(\d{4})\.(\d{2})(.+)$
(.+)$ - выгрести не менее одного любого символа до конца строки
или полный код:
А мой - как проще, если сильно не заморачиваешься красотой кода.
Вот теперь то, что надо!!!
Спасибище большое...
Подправил еще чутка. Получилось вот так:
$new_date = preg_replace("/(\d{4})\.(\d{1,2})(.+)$/", "\$1-\$3-\$2", $old_date);Кириллица, если юникод(UTF-8): "/[а-яА-Я]/u"
Кириллица, если юникод(UTF-8): "/[а-яА-Я]/u"
Принимается :) про UTF-8, что-то я и не подумала. Там, действительно, коды буковок подряд идут.