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

\s dentro dos colchetes

Tinha entendido que, dentro dos colchetes, todos os caracteres informados seriam interpretados de forma literal, como acontece com o ".".

No padrão

^Data:[\s]?[0-9]{2}\/[0-9]{2}\/[1-9]{4}$

o "\s" estando dentro dos colchetes, teoricamente (pelo meu entendimento) seria interpretado como "\" e "s".

Fiz os testes aqui e nenhum dos atalhos para classe são interpretados literalmente e a "\" precisa ser escapada para ser encontrada, mesmo dentro dos colchetes.

Qual seria a regra geral? Somente os metas são interpretados de forma literal dentro dos colchetes?

1 resposta
solução!

Oi Daniel, só vai interpretar de forma literal os que não forem classes ou agrupamentos. Por exemplo se se coloco [ao] a regex vai procurar tudo que tiver ao juntos, mas se eu coloco [a-o] ela vai procurar as letras separadas a, e, i, o. Você pode ver como exemplo [0-9] onde eu procuro todos os números de 0 a 9, nesse caso existe uma classe pra esses números que é a \d, então se eu busco [\d] é o mesmo de buscar [0-9]. A classe \sequivale ao branco. Pode ser espaço, tab, quebra de linha. E o \ é um metacaractere que auxilia essas classes. Você usa ela pro exemplo pra anular o . . Se eu fosse fazer a busca de . iria ter que obrigatoriamente usar a ., então quando a gente quer buscar todas as \ é preciso colocar \/ pra que a regex entenda que ele tá como forma literal e não um metacaractere.