12 окт 2012 12:51 | |
Сообщения:2
|
Помогите составить регулярное выражение для проверки свидетельства о рождение. Номер свидетельства о рождении ребенка состоит из трех частей, разделенных дефисом: первая часть содержит римские цифры (от 1 до 4 знаков), вторая часть содержит две русские буквы, третья часть содержит 6 цифр. Например, XVI-ТО-123456
|
12 окт 2012 13:33 | |
Сообщения: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}" |
12 окт 2012 14:04 | |
Сообщения:6977
|
shadowlord:
Номер свидетельства о рождении ребенка состоит из трех частей, разделенных дефисом: первая часть содержит римские цифры (от 1 до 4 знаков), вторая часть содержит две русские буквы, третья часть содержит 6 цифр. Например, XVI-ТО-123456
Э-э-э... не по теме несколько - откуда такой формат? Вроде две русские буквы и 6 цифр, во всяком случае у моих детей так. С уважением, Евгений aka Skipy www.skipy.ru P.S. Я НЕ решаю задачи ЗА других! |
08 ноя 2012 05:58 | |
Сообщения: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 считается корректным |
02 апр 2014 14:13 | |
Сообщения: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 |