--------------------------------------------------------------------------------
语法 解释
--------------------------------------------------------------------------------
字符
c 字符c
\unnnn, \xnn, \0n, \0nn, \0nnn 带有十六或八进制值的代码单元
\0n 八进制0n代表的字符(0<=n<=7)
\0nn 八进制0nn代表的字符(0<=n<=7)
\0mnn 八进制0mnn代表的字符(0<=m<=3,0<=n<=7)
\xnn 十六进制 0xnn所代表的字符
\uhhhh 十六进制 0xhhhh所代表的字符
\t, \n, \r, \f, \a, \e 控制字符
\t 制表符(\x09)
\n 换行符(\x0a)
\r 回车符(\x0d)
\f 换页符(\x0c)
\a 报警符
\e 转义符
\cc 控制字符中出现的相应字符c
--------------------------------------------------------------------------------
字符类
[C1C2. . .] 由C1、C2……任意一个表示的字符。Ci可以是字符,字符范围(C1-C2)或者字符类。
[^. . .] 字符类的补集
[ . . . && . . .] 两个字符类的交集
--------------------------------------------------------------------------------
预定义字符类
. 除行终止符外的任何字符(如果DOTALL标志置位,则表示任何字符)
\d 数字[0-9]
\D 非数字[^0-9]
\s 空白字符[\t\n\r\f\x0B]
\S 非空白字符
\w 单词字符[a-zA-Z0-9_]
\W 非单词字符
\p{name} 一个指定的字符类,见表12-9
\P{name} 指定字符类的补集
--------------------------------------------------------------------------------
边界匹配符
^ $ 输入的开头和结尾(在多行模式(multilinemode)下是行的开头和结尾)
\b 单词边界
\B 非单词边界
\A 输入的开头
\z 输入的结尾
\Z 除最后行终止符之外的输入结尾
\G 上个匹配的结尾
--------------------------------------------------------------------------------
量词
X? 可选的X(即X可能出现,也可能不出现)
X* X,可以重复0次或多次
X+ X,可以重复1次或多次
X{n} X{n,} X{n,m} X重复n次,至少重复n次,重复n到m次
--------------------------------------------------------------------------------
量词后缀
? 设默认(贪婪)匹配为reluctant匹配
+ 设默认(贪婪)匹配为possessive匹配
--------------------------------------------------------------------------------
集合操作
XY X的匹配后面跟着Y的匹配
X|Y X或Y的匹配
--------------------------------------------------------------------------------
分组
(X) 在一个分组中捕获匹配X的字符串
\n 与第n个分组的匹配
--------------------------------------------------------------------------------
转义
\c 字符c(必须不是字母)
\Q...\E 逐字地引用...
(?...) 特殊构造,见Pattern类的API
--------------------------------------------------------------------------------
预定义的字符类名(PredefinedCharacter Class Names)
--------------------------------------------------------------------------------
Lower 小写的ASII字符[a-z]
Upper 大写的ASCII字符[A-Z]
Alpha ASCII字母[A-Za-z]
Digit ASCII 数字 [0-9]
Alnum ASCII 字母或数字[A-Za-z0-9]
Xdigit 十六进制数字[0-9A-Fa-f]
Print or Graph 可打印的ASCII字符[\x21-\x7E]
Punct 非字母或数字ASCII [\p{Print}&&\P{Alnum}]
ASCII 所有ASCII字符 [\x00-\x7F]
Cntrl ASCII控制字符[\x00-\x1F]
Blank 空格符或制表符[ \t]
Space 空白符 [ \t\n\r\f\0x0B]
javaLowerCase 取决于Character.isLowerCase()的小写字符
javaUpperCase 取决于Character.isUpperCase()的大写字符
javaWhitespace 取决于Character.isWhitespace()的空白符
javaMirrored 取决于Character.isMirrored()的Mirrored(?)
InBlock 这里的Block是unicode字符的块名,用空格隔开,比如BasicLatin 或 Mongolian。块名列表 参考
Category 或InCategory 这里的Category是Unicode字符的种类名,比如L(字母)或者Sc(货币符号)。种类 名列表参考
语法 解释
--------------------------------------------------------------------------------
字符
c 字符c
\unnnn, \xnn, \0n, \0nn, \0nnn 带有十六或八进制值的代码单元
\0n 八进制0n代表的字符(0<=n<=7)
\0nn 八进制0nn代表的字符(0<=n<=7)
\0mnn 八进制0mnn代表的字符(0<=m<=3,0<=n<=7)
\xnn 十六进制 0xnn所代表的字符
\uhhhh 十六进制 0xhhhh所代表的字符
\t, \n, \r, \f, \a, \e 控制字符
\t 制表符(\x09)
\n 换行符(\x0a)
\r 回车符(\x0d)
\f 换页符(\x0c)
\a 报警符
\e 转义符
\cc 控制字符中出现的相应字符c
--------------------------------------------------------------------------------
字符类
[C1C2. . .] 由C1、C2……任意一个表示的字符。Ci可以是字符,字符范围(C1-C2)或者字符类。
[^. . .] 字符类的补集
[ . . . && . . .] 两个字符类的交集
--------------------------------------------------------------------------------
预定义字符类
. 除行终止符外的任何字符(如果DOTALL标志置位,则表示任何字符)
\d 数字[0-9]
\D 非数字[^0-9]
\s 空白字符[\t\n\r\f\x0B]
\S 非空白字符
\w 单词字符[a-zA-Z0-9_]
\W 非单词字符
\p{name} 一个指定的字符类,见表12-9
\P{name} 指定字符类的补集
--------------------------------------------------------------------------------
边界匹配符
^ $ 输入的开头和结尾(在多行模式(multilinemode)下是行的开头和结尾)
\b 单词边界
\B 非单词边界
\A 输入的开头
\z 输入的结尾
\Z 除最后行终止符之外的输入结尾
\G 上个匹配的结尾
--------------------------------------------------------------------------------
量词
X? 可选的X(即X可能出现,也可能不出现)
X* X,可以重复0次或多次
X+ X,可以重复1次或多次
X{n} X{n,} X{n,m} X重复n次,至少重复n次,重复n到m次
--------------------------------------------------------------------------------
量词后缀
? 设默认(贪婪)匹配为reluctant匹配
+ 设默认(贪婪)匹配为possessive匹配
--------------------------------------------------------------------------------
集合操作
XY X的匹配后面跟着Y的匹配
X|Y X或Y的匹配
--------------------------------------------------------------------------------
分组
(X) 在一个分组中捕获匹配X的字符串
\n 与第n个分组的匹配
--------------------------------------------------------------------------------
转义
\c 字符c(必须不是字母)
\Q...\E 逐字地引用...
(?...) 特殊构造,见Pattern类的API
--------------------------------------------------------------------------------
预定义的字符类名(PredefinedCharacter Class Names)
--------------------------------------------------------------------------------
Lower 小写的ASII字符[a-z]
Upper 大写的ASCII字符[A-Z]
Alpha ASCII字母[A-Za-z]
Digit ASCII 数字 [0-9]
Alnum ASCII 字母或数字[A-Za-z0-9]
Xdigit 十六进制数字[0-9A-Fa-f]
Print or Graph 可打印的ASCII字符[\x21-\x7E]
Punct 非字母或数字ASCII [\p{Print}&&\P{Alnum}]
ASCII 所有ASCII字符 [\x00-\x7F]
Cntrl ASCII控制字符[\x00-\x1F]
Blank 空格符或制表符[ \t]
Space 空白符 [ \t\n\r\f\0x0B]
javaLowerCase 取决于Character.isLowerCase()的小写字符
javaUpperCase 取决于Character.isUpperCase()的大写字符
javaWhitespace 取决于Character.isWhitespace()的空白符
javaMirrored 取决于Character.isMirrored()的Mirrored(?)
InBlock 这里的Block是unicode字符的块名,用空格隔开,比如BasicLatin 或 Mongolian。块名列表 参考
Category 或InCategory 这里的Category是Unicode字符的种类名,比如L(字母)或者Sc(货币符号)。种类 名列表参考