-
Por quê o Y não aparece?
-
olá Breno,
a expressão está selecionando a substring com caracteres da posição 1 a 3 da String "Y1234", sendo a contagem iniciada em 0. Ou seja, o Y encontra-se na posição 0, não sendo selecionado.
-
FYI, exemplo tirado de https://www.postgresql.org/docs/9.4/static/functions-matching.html#POSIX-MATCHING-RULES
-
entrega pra deus
ou nao
-
Quem não tem acesso: - -> A
-
tbm queria saber pq não aparece o y
-
pelo meu entendimento, a regex Y*([0-9]{1,3}) significa 0 ou mais Y seguidos por 1 a 3 dígitos de 0 a 9
Exemplos:
1
12
123
Y1
Y12
Y123
A regex tenta dar match na maior correspondência
Dentro das alternativas fiquei entre, Y12 e 123, fui na 123 por causa do parêntesis dar prioridade
Não vou ler o link que colocaram sobre POSIX matching, pelo seguinte fator:
Estou resumindo a documentação do postgresql levando em conta as questões, e até pulei esse tópico.. É muito grande, e não tem só PostgreSQL no seu edital...Fica a dica!
-
Cuidado, pessoal. Vários comentários errados aqui. Vamos lá... 'Y*([0-9]{1,3})'
"Y" = character Y
"*" = seguido de qualquer coisa
"[0-9]{1,3}" = seguido de 1 a 3 dígitos
.
Por que o "Y" não aparece? Porque a regex possui um parêntese apenas ao redor dos dígitos, o que significa que só essa parte será capturada para o retorno. Se removesse os parênteses ou colocasse o "Y*" dentro dele, a resposta seria Y123