1

私はTomcatでうまく機能するアプリケーションを持っています。今日、私はそれをグラスフィッシュに乗せようとしました。私のアプリで使用されている1つの正規表現はGlassfishのサーバーでは常にfalseを返しますが、Tomcatでは正常に機能するため、deploiementは失敗します。私はテストのためにこの単純なパターンを試しました:

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 までの 1 文字のみに一致し、それに + を追加すると 1 つ以上に一致します

[a-z]+

* を追加すると、none を含む任意の数に一致します。

[a-z]*
于 2012-09-27T14:12:23.190 に答える