регулярное выражение для проверки свидетельства о рождение

 
 
 
Сообщения:2
Помогите составить регулярное выражение для проверки свидетельства о рождение. Номер свидетельства о рождении ребенка состоит из трех частей, разделенных дефисом: первая часть содержит римские цифры (от 1 до 4 знаков), вторая часть содержит две русские буквы, третья часть содержит 6 цифр. Например, XVI-ТО-123456
 
 
Сообщения:23
"(?i)M{0,3}(D?C{0,3}|C[DM])(L?X{0,3}|X[LC])(V?I{0,3}|I[VX])-[\\u0410-\\u044F\\u0451\\u0401]{2}-[0-9]{6}"
 
 
Сообщения:6977
shadowlord:
Номер свидетельства о рождении ребенка состоит из трех частей, разделенных дефисом: первая часть содержит римские цифры (от 1 до 4 знаков), вторая часть содержит две русские буквы, третья часть содержит 6 цифр. Например, XVI-ТО-123456


Э-э-э... не по теме несколько - откуда такой формат? Вроде две русские буквы и 6 цифр, во всяком случае у моих детей так.

С уважением,
Евгений aka Skipy
www.skipy.ru
P.S. Я НЕ решаю задачи ЗА других!
 
 
Сообщения:2
не много адаптировал предложенный LightWind вариант
^M{0,3}(D?C{0,3}|C[DM])(L?X{0,3}|X[LC])(V?I{0,3}|I[VX])-[\u0410-\u044F]{2}-\d{6}$

Вот только вылезла не большая проблема, получается что по этому выражению первых римских цифр может не быть совсем , то есть вариант
-ТО-123456 считается корректным
 
 
Сообщения:1
shadowlord:
не много адаптировал предложенный LightWind вариант
^M{0,3}(D?C{0,3}|C[DM])(L?X{0,3}|X[LC])(V?I{0,3}|I[VX])-[\u0410-\u044F]{2}-\d{6}$

Вот только вылезла не большая проблема, получается что по этому выражению первых римских цифр может не быть совсем , то есть вариант
-ТО-123456 считается корректным


От тире в начале поможет "отрицательный (негативный) просмотр назад" нацеленный на проверку начала строки
^M{0,3}(D?C{0,3}|C[DM])(L?X{0,3}|X[LC])(V?I{0,3}|I[VX])((?<!^)-)?[\u0410-\u044F]{2}-\\d{6}$
Изменен:02 апр 2014 11:21
 
Модераторы:frymock
Сейчас эту тему просматривают:Нет