Думая о my other problem, я решил, что я не могу даже создать регулярное выражение, которое будет соответствовать римским цифрам (не говоря уже о контекстно-свободной грамматике, которая будет генерировать их)Как вы сопоставляете только действительные римские цифры с регулярным выражением?
Проблемы соответствия только действительные римские цифр. Например, 990 НЕ «XM», это «CMXC»
Моя проблема с созданием регулярного выражения заключается в том, что для того, чтобы разрешить или не разрешить определенные символы, мне нужно оглянуться назад. Давайте возьмем тысячи и сотни, например.
Я могу разрешить M {0,2} C? M (для разрешения 900, 1000, 1900, 2000, 2900 и 3000). Однако, если совпадение находится на CM, я не могу допускать, чтобы следующие символы были C или D (потому что я уже достиг 900).
Как выразить это в регулярном выражении?
Если это просто не выражается в регулярном выражении, то это выражается в контекстно-свободной грамматике?
Это действительно интересная проблема, и может быть использовано для обучения регулярных выражений ... если это выполнимо. Я не знаю их достаточно хорошо, чтобы рискнуть. – helloandre 2008-11-06 01:33:12