我正在处理一些具有以下语句的Java代码:
if (sql1.matches("(?i)^CREATE\\s+TABLE\\p{all}*")) {
// do something;
}
我已经搜索了正则表达式语法,但是找不到使用\\p{all}
的规则。那么这个表达是什么意思?
答案 0 :(得分:3)
将Unicode all
类别“手动”添加到类别列表中,以匹配任何字符,包括换行符等。
map.put("all", new CharPropertyFactory() {
CharProperty make() { return new All(); }});
然后是this part:
/**
* 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
,请参见this part:
case '.':
next();
if (has(DOTALL)) {
node = new All();
} ....
答案 1 :(得分:0)