2012-09-27 7 views
1

J'ai une application qui fonctionne bien sur tomcat. Aujourd'hui, j'ai essayé de le mettre sur glassfish. Le déploiement échoue car 1 regex utilisée dans mon application renvoie toujours false sur le serveur glassfish mais fonctionne correctement sur tomcat. J'ai essayé ce modèle simple pour les tests:motif regex renvoie toujours faux sur glassFish

Pattern p = Pattern.compile("[a-z]"); 
Matcher m = p.matcher("toto"); 
System.out.println(m.matches()); 

Ce test échoue. Une solution?


j'ai ce modèle qui échoue sur le serveur GlassFish

public static boolean isPatternValid(String pattern, String string){ 
    Pattern p = Pattern.compile(pattern); 
    Matcher m = p.matcher(string); 
    return m.matches(); 
} 

public static String patternExtension(String extension){ 
    return "([^\\s]+(\\.(?i)("+extension+"))$)"; 
} 

Je prends cette regex sur http://www.mkyong.com/regular-expressions/how-to-validate-image-file-extension-with-regular-expression/

Répondre

3

vous devez répéter l'ensemble

Pattern p = Pattern.compile("[a-z]+"); 

si vous utilisez * au lieu de +, il correspondra à la veille n si vous comparez à une chaîne vide.

+0

ooh, putain, comment puis-je oublier cette chose ^^. Mais mon problème est toujours là. – Scandinave

2

[a-z] correspond à un seul caractère de a à z, en ajoutant + à elle correspondra à un ou plusieurs

[a-z]+ 

ajouter * correspond à un certain nombre d'inclure aucun.

[a-z]*