X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Не распознается спецсимвол в регулярке
Kuchuluk
Kuchuluk
Topic Starter сообщение 6.3.2013, 20:39; Ответить: Kuchuluk
Сообщение #1


заношу в переменную строку с датой и нужно выдрать по отдельности число, месяц и год.
$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
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
IGRIKRUS
IGRIKRUS
сообщение 7.3.2013, 0:21; Ответить: IGRIKRUS
Сообщение #2


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


а зачем выдирать регуляркой когда можно так
$date = "31-01-2013";
$mass = explode('-',$date);
var_dump($mass);
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Kuchuluk
Kuchuluk
Topic Starter сообщение 7.3.2013, 0:37; Ответить: Kuchuluk
Сообщение #3


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

так в том то и дело, что мне надо именно регуляркой(
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
IGRIKRUS
IGRIKRUS
сообщение 7.3.2013, 0:55; Ответить: IGRIKRUS
Сообщение #4


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

если не проверяете значение даты то смысл делать это через регулярку ?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
matroskin8
matroskin8
сообщение 7.3.2013, 1:03; Ответить: matroskin8
Сообщение #5


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


[member=matroskin8], спасибо. я думал нужно обязательно спецсимволами пользоваться.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
matroskin8
matroskin8
сообщение 7.3.2013, 17:49; Ответить: matroskin8
Сообщение #7


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

Если это об ограничителях шаблона, то отнюдь нет :) В качестве ограничителей может выступать любой символ, кроме альфанумериков (латинских литер и цифр) и обратного слеша. Если не ошибаюсь, то ограничителями могут выступать даже кириллические символы, поскольку они не запрещены (не относятся к категории альфанумериков). Ну и само собой, что если ограничитель встречается внутри шаблона, то его следует экранировать, чтобы он не воспринимался окончанием шаблона.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Mr.Developer
Mr.Developer
сообщение 13.3.2013, 13:21; Ответить: Mr.Developer
Сообщение #8


Регулярки просто и легко проверять можно например здесь: http://pyha.ru/fishki/regexp/
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Kuchuluk
Kuchuluk
Topic Starter сообщение 17.3.2013, 13:04; Ответить: Kuchuluk
Сообщение #9


по этой ссылке перехожу, у меня ошибка 404 вылезает Not found
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Mr.Developer
Mr.Developer
сообщение 18.3.2013, 10:23; Ответить: Mr.Developer
Сообщение #10


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

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


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


 



RSS Текстовая версия Сейчас: 18.4.2024, 7:48
Дизайн