14
有効なローマ数字のみを正規表現とどのように照合しますか?
私の他の問題を考えて、ローマ数字に一致する正規表現を作成することさえできないと決めました(それらを生成する文脈自由文法はもちろんのこと) 問題は、有効なローマ数字のみに一致することです。たとえば、990は「XM」ではなく、「CMXC」です。 このための正規表現を作成する上での私の問題は、特定の文字を許可または許可しないために、振り返る必要があるということです。たとえば、何千、何百と考えてみましょう。 M {0,2} C?Mを許可できます(900、1000、1900、2000、2900、3000を許可するため)。ただし、一致がCMの場合、次の文字をCまたはDにすることはできません(既に900にいるため)。 これを正規表現でどのように表現できますか? 単純に正規表現で表現できない場合、文脈自由文法で表現できますか?
165
regex
roman-numerals