За последние 24 часа нас посетили 17932 программиста и 1644 робота. Сейчас ищут 1388 программистов ...

preg_match fail

Тема в разделе "Регулярные выражения", создана пользователем Almere, 12 ноя 2013.

  1. Almere

    Almere Активный пользователь

    С нами с:
    8 фев 2011
    Сообщения:
    53
    Симпатии:
    0
    Добрый день.

    Помогите, пожалуйста, как правильно составить рег. выражение.

    Код (Text):
    1. $str = 'db_blablabla_gck2_2012-06-15_01-59.sql.gz';
    Я очень-очень хочу получить дату ( 2012-06-15 ) из вышестоящего примера данных.

    Застопорился я на своем нерабочем выражении:
    Код (Text):
    1.  
    2. preg_match('#db_(.*?)_\d{2}-\d{2}\.sql.gz#sim', $file, $m)
    Получаю я следующее: "blablabla_gck2_2012-06-15". Что верно, но не то, что мне нужно. Подскажите, как правильно оформить ?

    Спасибо!
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Если формат не будет меняться то

    Код (PHP):
    1. $str = 'db_blablabla_gck2_2012-06-15_01-59.sql.gz';
    2. preg_match('/\d{4}-\d{2}-\d{2}/', $str, $match);
    3. echo $match[0];
    4.  
     
  3. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    или так, на случай если в blablabla тоже будут даты:
    Код (Text):
    1. /db_.+_(\d{4}-\d{2}-\d{2})_\d{2}-\d{2}.sql.gz/
    $match[1]

    http://www.phpliveregex.com/
     
  4. Almere

    Almere Активный пользователь

    С нами с:
    8 фев 2011
    Сообщения:
    53
    Симпатии:
    0
    Спасибо большое
     
  5. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Код (Text):
    1. /(\d{4}-\d{2}-\d{2})_\d{2}-\d{2}\.sql\.gz/i