Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Outra opção de Regex para CNPJ

Na resposta do exercício consta

\d{2}\.\d{3}\.\d{3}\/\d{4}\-\d{2}

Porém fiz da seguinte forma e funcionou.

\d{2}\.\d{3}\.\d{3}/\d{4}-\d{2}

Coloquei "/\" ao invés de "\/\". Há algum problema?

1 resposta
solução!

Oi Emerson, boa pergunta.

A questao aqui é entender o que é caracter especial e o que não é na regex e na linguagem que voce estiver utilizando. O - só é especial dentro de classes de caracteres (como em [0-9]). No exemplo, ele está fora, então seria seguro não escapa-lo com a \. Mas mal não faz, só gastou um caracter a mais.

Já a / é um caso interessante. Na regex em si ela não costuma ter significado, por isso voce deixar de escapa-la com \ funcionou no seu caso. Mas em muitas linguagens (como JavaScript) a / é usada como delimitador de regex na linguagem. Por exemplo:

// codigo javascript
var regex = /\d{2}/;

Nesse caso, se colocar uma / no meio da regex vc vai ter problemas. Por isso escapamos com \. Nao tanto pela regex em si, mas pq a linguagem usa esse caracter como delimitador.

Mas no proprio JavaScript, por exemplo, te permite criar uma regex a partir de uma string na classe RegExp. Ai nesse caso nao usamos a linguagem em si com seu delimitador / então é possivel usar / no meio sem problemas.

// codigo javascript
var regex = new RegExp("\d{2}/\d{2}");