Bonjour,
Je fais une fonction pour tester si une uri peut être dispatché vers une de mes pages JSP.
Si je fais
Alors test("/wsedupassion/account/volunteer", "/wsedupassion/account/volunteer"); ne me pose pas de soucis. J'ai deux string identiques.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 private boolean test(String regexp, String uri) { System.out.println("uri to test : "+uri); System.out.println("regexp : "+regexp); Pattern p = Pattern.compile(regexp); Matcher m = p.matcher(uri); return m.matches(); }
Maintenant, je voudrais quand même valider par exemple :
"//wsedupassion/account//volunteer", car on a vite fait de laisser trainer des '/' en trop
Et là, stupeur ! JRegexTester me dit OK, alors que ma fonction me renvoit false.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 private boolean test(String regexp, String uri) { System.out.println("uri to test : "+uri); System.out.println("regexp : "+regexp); String likeUri = uri.replace("/", "[/]+"); System.out.println("likeUri : "+likeUri); Pattern p = Pattern.compile(regexp); Matcher m = p.matcher(likeUri); return m.matches(); }
Je galère comme pas possible avec Java et ses regexp, alors tout me semble normal en javascript![]()
Partager