Estou com um problema no desenvolvimento de uma expressão regular.
A idéia do padrão que quero estabelecer é bem simples, porém não consigo aplicá-lo.
Ai vai…
// Pattern
[^(gif)(js)(jpg)]$
Ou seja eu gostaria de tornar válidas somente string que não terminem com gif, js ou jpg.
Porém dentro de uma lista “todos” os metacaracteres perdem sua funcionalidade, assim não consigo formar grupos dentro dela.
Alguem daqui já se deparou com essa necessidade, ou tem uma dica de solução.
Ah cuidado com o String.matches, ele só aceita se a String INTEIRA estiver de acordo com o padrão
Se tivesse escrito uma regex “termina com jpg|js|gif” teria que usar regex.matcher(input).find();
System.out.println(!regex.matcher(valid).find());
System.out.println(!regex.matcher(invalid).find());[/code]
No post anterior tinha “.*” que significa 0 ou mais repetições de qualquer caractere
Vamos ver se eu entendi mesmo…
em String.matches(pattern) não é possível usar âncoras na expressão regular ?
pois ele casa o padrão com a string por inteiro…
Caso eu queira usar todos os recursos de expressões regular o melhor seria usar Pattern.compile(pattern).matcher(str).find() ?