JAVA正则表达式语法
JAVA正则表达式语法
Java 正则表达式
表达式意义:
1.字符
x 字符x。例如a表示字符a
\\ 反斜线字符。在书写时要写为\\\\。(注意:因为java在第一次解析时,把\\\\解析成正则表达式\\,在第二次解析时再解析为\,所以凡是不是1.1列举到的转义字符,包括1.1的\\,而又带有\的都要写两次)
\0n 带有八进制值0的字符n (0 <= n <= 7)
\0nn 带有八进制值0的字符nn (0 <= n <= 7)
\0mnn 带有八进制值0的字符mnn(0 <= m <= 3、0 <= n <= 7)
\xhh 带有十六进制值0x的字符hh
\uhhhh 带有十六进制值0x的字符hhhh
\t 制表符('\u0009')
\n 新行(换行)符('\u000A')
\r 回车符('\u000D')
\f 换页符('\u000C')
\a 报警(bell) 符('\u0007')
\e 转义符('\u001B')
\cx 对应于x 的控制符
2.字符类
[abc] a、b或c(简单类)。例如[egd]表示包含有字符e、g或d。
[^abc] 任何字符,除了a、b或c(否定)。例如[^egd]表示不包含字符e、g或d。
[a-zA-Z] a到z或A到Z,两头的字母包括在内(范围)
[a-d[m-p]] a到d或m到p:[a-dm-p](并集)
[a-z&&[def]] d、e或f(交集)
[a-z&&[^bc]] a到z,除了b和c:[ad-z](减去)
[a-z&&[^m-p]] a到z,而非m到p:[a-lq-z](减去)
3.预定义字符类(注意反斜杠要写两次,例如\d写为\\d)任何字符
(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字:[^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
4.POSIX 字符类(仅US-ASCII)(注意反斜杠要写两次,例如\p{Lower}写为\\p{Lower})
\p{Lower} 小写字母字符:[a-z]。
\p{Upper} 大写字母字符:[A-Z]
\p{ASCII} 所有ASCII:[\x00-\x7F]
\p{Alpha} 字母字符:[\p{Lower}\p{Upper}]
\p{Digit} 十进制数字:[0-9]
\p{Alnum} 字母数字字符:[\p{Alpha}\p{Digit}]
\p{Punct} 标点符号:!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
\p{Graph} 可见字符:[\p{Alnum}\p{Punct}]
\p{Print} 可打印字符:[\p{Graph}\x20]


