Используя PHP, я хотел бы преобразовать строку, содержащую римское число, в его целочисленное представление. Мне нужно это, потому что мне нужно делать вычисления на них.
Достаточно было бы распознать основные римские цифры, например:
$roman_values=array(
'I' => 1,
'V' => 5,
'X' => 10,
'L' => 50,
'C' => 100,
'D' => 500,
'M' => 1000,
);
Это означает, что максимально возможное число - 3999 (MMMCMXCIX). Я буду использовать N
для представления нуля, кроме того, что поддерживаются только положительные целые числа.
Я не могу использовать библиотеку PEAR для римских номеров.
Я нашел этот большой вопрос о SO о том, как проверить, содержит ли строка действительную цифру Roman:
Как вы сопоставляете только действительные римские цифры с регулярным выражением?
Каким будет лучший способ кодирования этого?