Записал для программы список всех римских цифр ("регулярное выражение").
И обратил внимание, что IVXLCDM -- это, хотя и совершенно неупотребительная, но запись числа. Впрочем, в арабских цифрах это число выглядит совершенно не сакрально :))
В отличие от зловещего MDCLXVI :)) лондонцы не дадут соврать, не говоря уже о старообрядцах и "русском Безухове"...
И обратил внимание, что IVXLCDM -- это, хотя и совершенно неупотребительная, но запись числа. Впрочем, в арабских цифрах это число выглядит совершенно не сакрально :))
В отличие от зловещего MDCLXVI :)) лондонцы не дадут соврать, не говоря уже о старообрядцах и "русском Безухове"...
no subject
Date: 2004-10-02 02:26 am (UTC)perl -e 'foreach $roman ("IVXLCDM", "MDCLXVI", "MMIV", "MCMLXXVIII") { if ($roman =~ /^M*(C?[MD]|D?C{0,4})(X?[CL]|L?X{0,4})(I?[VX]|V?I{0,4})$/) { print "$roman matches\n"; } else { print "$roman does not match\n"; }}'Печатает:
Так что где-то у Вас ошибка. Я в коде отметил синим собственно регулярное выражение; если интересно, сверьте отличия.
no subject
Date: 2004-10-02 02:44 am (UTC)CиX(в отличие отI) должны быть{0,3}, а не{0,4}.no subject
Date: 2004-10-02 09:45 am (UTC)Так что IVXLCDM = 334 вполне можно себе вообразить.
для ясности
Date: 2004-10-02 09:51 am (UTC)