鵬飛占:
私は、次のステートメントを持っているいくつかのJavaコードで働いています:
if (sql1.matches("(?i)^CREATE\\s+TABLE\\p{all}*")) {
// do something;
}
私は正規表現の構文を検索しましたし、使用するルールを見つけることができません\\p{all}
。だから、この式の意味は何ですか?
Wiktor第Stribiżav:
Unicodeのall
カテゴリは、改行などを含め、任意の文字に一致するようにカテゴリのリストに「手動」追加されます
map.put("all", new CharPropertyFactory() {
CharProperty make() { return new All(); }});
その後、この部分:
/**
* Implements the Unicode category ALL and the dot metacharacter when
* in dotall mode.
*/
static final class All extends CharProperty {
boolean isSatisfiedBy(int ch) {
return true;
}
}
All()
インスタンス化するために使用され.
てDOTALL
参照して、モードこの部分を:
case '.':
next();
if (has(DOTALL)) {
node = new All();
} ....