1
resposta

ER diferente.

usei essa ER e deu certo pra mim. esta incompleta? [A-Za-z]+,\s7.[2-9]

1 resposta

Oi José, tudo bem?

Desculpe a demora em retornar.

Primeiramente, parabéns por ter conseguido fazer a expressão regular funcionar para você! É sempre gratificante quando nosso trabalho dá certo.

No entanto, respondendo à sua pergunta, sim, a expressão regular que você escreveu está incompleta. Vou explicar o porquê.

A sua expressão regular é [A-Za-z]+,\s7.[2-9]. Vamos analisar cada parte dela:

  • [A-Za-z]+: essa parte da expressão significa "uma ou mais letras maiúsculas ou minúsculas". Ou seja, ela irá buscar qualquer sequência de letras do alfabeto, sem restrição de tamanho.

  • ,\s: aqui temos uma vírgula seguida de um espaço em branco. Isso significa que a expressão regular espera que haja uma vírgula e um espaço em branco exatamente nessa posição.

  • 7.: essa parte da expressão significa "um número 7 seguido de qualquer outro caractere". O ponto significa "qualquer caractere", exceto quebras de linha.

  • [2-9]: essa parte significa "um número entre 2 e 9". Ou seja, ela espera que haja um número entre 2 e 9 exatamente nessa posição.

Portanto, se encontrarmos um texto que siga exatamente esse padrão, a sua expressão regular irá capturá-lo corretamente. Por exemplo, se tivermos o texto "abc, 7.3", a expressão regular irá capturar "abc, 7.3".

No entanto, se o texto for um pouco diferente desse padrão, a expressão regular pode falhar em capturar o que queremos. Por exemplo, se tivermos o texto "abc, 7.10", a expressão regular irá capturar apenas "abc, 7.1", pois o último caractere é um 0, que não está dentro do intervalo [2-9].

Uma forma de tornar a expressão regular mais completa seria especificar exatamente quantos caracteres numéricos esperamos depois do "7.". Para isso, podemos usar chaves {n,m}, que indicam que esperamos um número entre n e m repetições do caractere anterior. No nosso caso, queremos exatamente um caractere numérico entre 2 e 9, então podemos usar a expressão {1} no final:

[A-Za-z]+,\s7.[2-9]{1}

Isso significa que a expressão regular espera uma letra ou mais, seguida de uma vírgula e um espaço, seguida de "7." e exatamente um caractere numérico entre 2 e 9.

Agora, se tivermos o texto "abc, 7.10", a expressão regular irá falhar em capturar qualquer coisa, já que não há um caractere numérico entre 2 e 9 na posição esperada.

Espero que isso tenha ficado claro para você!

Um abraço e bons estudos.