Перейти к содержимому



Не распознается спецсимвол в регулярке

#1 Kuchuluk
Kuchuluk
  • Неактивные
  • 333 сообщений
  • Репутация: 5
0

Обновлено 18 марта 2013 - 09:23  Отправлено 06 марта 2013 - 19:39

заношу в переменную строку с датой и нужно выдрать по отдельности число, месяц и год.
$date = "31-01-2013";
$massiv = preg_match("(\d{2}).(\d{2}).(\d)",$date,$karman);
var_dump($karman);
но выдает вот такую ошибку Warning: preg_match() [function.preg-match]: Unknown modifier '.' in Z:\home\localhost\www\test\regularki.php on line 24 , типа неизвестный модификатор. Но как точка может быть неизвестной? это же спецсимвол для регулярных выражений.

 

 

  • 0

#2 IGRIKRUS
IGRIKRUS
  • Неактивные
  • 9 сообщений
  • Репутация: 0

Отправлено 06 марта 2013 - 23:21

нужно выдрать по отдельности число, месяц и год.


а зачем выдирать регуляркой когда можно так
$date = "31-01-2013";
$mass = explode('-',$date);
var_dump($mass);

  • 0

#3 Kuchuluk
Kuchuluk
    Topic Starter
  • Неактивные
  • 333 сообщений
  • Репутация: 5

Отправлено 06 марта 2013 - 23:37

а зачем выдирать регуляркой когда можно так

так в том то и дело, что мне надо именно регуляркой(
  • 0

#4 IGRIKRUS
IGRIKRUS
  • Неактивные
  • 9 сообщений
  • Репутация: 0

Отправлено 06 марта 2013 - 23:55

а что вы пытаетесь проверить регуляркой?

если не проверяете значение даты то смысл делать это через регулярку ?
  • 0

#5 matroskin8
matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 07 марта 2013 - 00:03

Вообще-то, любой шаблон регулярных выражений должен помещаться в ограничители, каковыми могут являться любые парные символы. У Вас таких ограничителей нет - отсюда и ошибка, поскольку интерпретатор полагает, что ограничителем выступает символ скобки... после закрывающей скобки стоит точка, которая и есть тем самым неизвестным модификатором шаблона.
Чаще всего в качестве ограничителей используются символы слеша или диеза.
Также если предполагается, что разделитем в формате даты будет дефис, то лучше его и указывать вместо точки. Ну и в качестве года Ваш шаблон будет пропускать только одну цифру, а не 4.
Так будет работать:
$date = "31-01-2013";
$massiv = preg_match("#(d{2}).(d{2}).(d{4})#",$date,$karman); // вместо точки лучше указывать дефис, если он используется в качестве разделителя
var_dump($karman);

  • 1


#6 Kuchuluk
Kuchuluk
    Topic Starter
  • Неактивные
  • 333 сообщений
  • Репутация: 5

Отправлено 07 марта 2013 - 16:24

matroskin8, спасибо. я думал нужно обязательно спецсимволами пользоваться.
  • 0

#7 matroskin8
matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 07 марта 2013 - 16:49

Пожалуйста.

я думал нужно обязательно спецсимволами пользоваться

Если это об ограничителях шаблона, то отнюдь нет :) В качестве ограничителей может выступать любой символ, кроме альфанумериков (латинских литер и цифр) и обратного слеша. Если не ошибаюсь, то ограничителями могут выступать даже кириллические символы, поскольку они не запрещены (не относятся к категории альфанумериков). Ну и само собой, что если ограничитель встречается внутри шаблона, то его следует экранировать, чтобы он не воспринимался окончанием шаблона.
  • 1


#8 Mr.Developer
Mr.Developer
  • Неактивные
  • 73 сообщений
  • Репутация: 12

Отправлено 13 марта 2013 - 12:21

Регулярки просто и легко проверять можно например здесь: http://pyha.ru/fishki/regexp/
  • 0

#9 Kuchuluk
Kuchuluk
    Topic Starter
  • Неактивные
  • 333 сообщений
  • Репутация: 5

Отправлено 17 марта 2013 - 12:04

по этой ссылке перехожу, у меня ошибка 404 вылезает Not found


  • 0

#10 Mr.Developer
Mr.Developer
  • Неактивные
  • 73 сообщений
  • Репутация: 12

Отправлено 18 марта 2013 - 09:23

Видимо приехали они. Какие то проблемы на их сервере.

Вот хорошие альтернативы:
http://gskinner.com/RegExr/
http://regexpr.ru/
http://www.solmetra.com/scripts/regex/


  • 1

robot
robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Похожие темы
  Название темы Автор Статистика Последнее сообщение

Пользователь месяца
Megoydagi Megoydagi 1-й за Август
Очков активности: 30 4 темы, 8 сообщений, 1 балл репутации
Сайт: bank.net.ru
ТОП самых активных за этот месяц
  • Фотография Vmir
    #1

    Vmir
    Очков активности: 22.5 3 темы, 6 сообщений, 1 балл репутации

  • Фотография BLIK
    #2

    BLIK
    Очков активности: 18 Вне конкурса за определение пользователя месяца

  • Фотография WGN
    #3

    WGN (worldgamenews.com)
    Очков активности: 12 1 тема, 5 сообщений, 1 балл репутации

  • Фотография Totti
    #4

    Totti
    Очков активности: 12 0 тем, 8 сообщений, 1 балл репутации

  • Фотография kuztoday
    #5

    kuztoday
    Очков активности: 10.5 1 тема, 4 сообщения, 1 балл репутации

  • Фотография SergiuS85
    #6

    SergiuS85
    Очков активности: 10.5 2 темы, 1 сообщение, 1 балл репутации

  • Фотография mkreine
    #7

    mkreine (analiz-krovi.net)
    Очков активности: 9 1 тема, 3 сообщения, 1 балл репутации

  • Фотография Megoydagi
    #8

    Megoydagi (bank.net.ru)
    Очков активности: 9 Вне конкурса за определение пользователя месяца

  • Фотография kolver
    #9

    kolver
    Очков активности: 9 1 тема, 3 сообщения, 1 балл репутации

  • Фотография fedornabilkin
    #10

    fedornabilkin (plohoneponyal.ru)
    Очков активности: 7.5 1 тема, 2 сообщения, 1 балл репутации

  • Показать весь ТОП 10

Поддержите форум! =)
Топ 5 участников по репутации

Оформление форума – IPBSkins.ru