Expressões regulares·um numeral romano
Publicidade

Garanta seu bônus em uma corretora de cripto

Bônus que você recebe só por se cadastrar. As condições são as que cada corretora anuncia.

um numeral romano

Casa com um numeral romano. Está ancorado nas duas pontas, então a cadeia inteira precisa casar. Não tem grupos de captura.

Padrão
/^M{0,3}(?:CM|CD|D?C{0,3})(?:XC|XL|L?X{0,3})(?:IX|IV|V?I{0,3})$/
Alcance
a cadeia inteira
Grupos de captura
0
O que captura no primeiro exemplo
XIV

Experimente

Digite qualquer texto e as partes capturadas serão marcadas. Tudo roda no seu navegador e nada é enviado.

XIV

1 correspondência

Exemplos que casam

  • XIV
  • MMXXIV

Exemplos que não casam

  • IIII
  • ABC

Outras expressões do grupo

Como ler

  • Com ^ e $ em volta, a cadeia inteira precisa casar; sem eles, a correspondência pode estar em qualquer lugar. Ancore sempre o que usar para validar.
  • Os parênteses ( ) capturam o que envolvem. Se você só precisa agrupar, escreva (?: ) para a numeração não se deslocar.
  • Cada expressão aqui é conferida com seus exemplos. Ainda assim, "parece um e-mail" e "é uma caixa real" são coisas diferentes.
  • Repetições abertas aninhadas como (a+)+ podem explodir com certas entradas. Procure esse formato antes de colar uma expressão alheia.

Perguntas frequentes

QQual é a regex para um numeral romano?

^M{0,3}(?:CM|CD|D?C{0,3})(?:XC|XL|L?X{0,3})(?:IX|IV|V?I{0,3})$.

QQuais cadeias casam?

Um texto como XIV casa; um como IIII não.

QA cadeia inteira precisa casar?

Sim. Está entre ^ e $, então só passa uma correspondência completa.

QComo uso o que foi capturado?

Não há grupos de captura, então volta só a correspondência inteira (match[0]). Coloque entre parênteses a parte que precisar.