Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> регулярное выражение 
V
    Опции темы
GrafF812
Дата 17.3.2010, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 3.12.2009

Репутация: нет
Всего: нет



здавтствуйте, помогите составить регулярное выражение, мне нужно проверить на соответсвие два вида шифров:
1) 
Код

$code1 = "ММР90-01-001-01"

и
2)
Код

$code2 = "9887-987"

нужно чтобы коды были именно в такой последовательности, т.е
в первом случае в коде должно быть 3 русские буквы затем сразу после них 2 цифры, затем минус, затем две цыфры и т.д.
во втором соответственно 4 цифры, затем минус, затем 3 цифры.
В общем случае мне нужно чтобы эти коды строго соответствовали этому формату. Спасибо! 

Это сообщение отредактировал(а) GrafF812 - 17.3.2010, 18:44
PM MAIL   Вверх
bars80080
Дата 17.3.2010, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Код

/^[А-Я]{3}[0-9]{2}-[0-9]{3}-[0-9]{2}$/

/^[0-9]{4}-[0-9]{3}$/

наверно так
PM MAIL WWW   Вверх
GrafF812
Дата 17.3.2010, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 3.12.2009

Репутация: нет
Всего: нет



bars80080, спасибо. я именно так и делал, но почему-то если проверяю строку такого вида:
Код

$code3 = "ММРз90-01-001-01"

то она тоже удовлетворяет первому шаблону (хотя не должна т.к требуется только 3 первых символа)
PM MAIL   Вверх
bars80080
Дата 18.3.2010, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



может так

Код

/^([А-Я]){3}([0-9]){2}-([0-9]){3}-([0-9]){2}$/
/^([0-9]){4}-([0-9]){3}$/


?

ну и можно просто повторить
[0-9][0-9]... нужное число раз
PM MAIL WWW   Вверх
GrafF812
Дата 18.3.2010, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 3.12.2009

Репутация: нет
Всего: нет



bars80080,  + Спасибо Вам большое все получилось, подскажите последний вопрос, мне нужно написать регулярное выражение для проверки на правильность формата сразу двух видов кодов такого вида:
Код

$code1 = "7564-8574";
$code2 = "7364-8578-76";


Это сообщение отредактировал(а) GrafF812 - 18.3.2010, 17:46
PM MAIL   Вверх
bars80080
Дата 18.3.2010, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Код

/^([0-9]){4}-([0-9]){3}(-([0-9]){2}){0,1}$/

может так?
PM MAIL WWW   Вверх
patap
Дата 18.3.2010, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 26
Всего: 40



Код
^\d{4}-\d{4}(-\d{2})?$



--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
GrafF812
Дата 18.3.2010, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 3.12.2009

Репутация: нет
Всего: нет



спасибо, поясните пожалуйста:
1) \d означает целое число от 0 до 9 ?
2) Что обозначает символ '?' в части (-\d{2})?
PM MAIL   Вверх
patap
Дата 18.3.2010, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 26
Всего: 40



1. \d - одиночная цифра
2. ? - это тоже самое, что {0,1} - может быть может не быть. 
    -\d{2}  -  это соответствует выделенной части 7364-8578-76. Взяли его в скобки (-\d{2}), чтобы сгрупировать. И добавили ?, чтобы указать, что данная группа может как быть, так и не быть

Это сообщение отредактировал(а) patap - 18.3.2010, 22:51


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
GrafF812
Дата 19.3.2010, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 3.12.2009

Репутация: нет
Всего: нет



patap, Спасибо Вам большое за помошь!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0608 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.