1

我有一个在tomcat上运行良好的应用程序。今天,我试着把它放在 glassfish 上。部署失败,因为在我的应用程序中使用的 1 个正则表达式总是在 glassfish 的服务器上返回 false,但在 tomcat 上工作正常。我已经尝试过这种简单的测试模式:

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

此测试失败。有什么解决办法吗?


我有这种模式在 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+"))$)";
}

我在http://www.mkyong.com/regular-expressions/how-to-validate-image-file-extension-with-regular-expression/上使用这个正则表达式

4

2 回答 2

3

你需要重复这组

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

如果您使用*而不是+,即使您与空字符串进行比较,它也会匹配。

于 2012-09-27T14:06:48.980 回答
2

[az] 只匹配从 a 到 z 的一个字符,添加 + 将匹配一个或多个

[a-z]+

添加 * 匹配任意数量,包括无。

[a-z]*
于 2012-09-27T14:12:23.190 回答