正則表達式
正則表達式:基本知识
1 字符, 2 字符类 , 3 提前定义字符类 ,
4 边界匹配器 ,5 Greedy 数量词,6 Logical 运算符
具体解释:
1 字符
x 字符 x
\\ 反斜线字符
\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(简单类)
[^abc] 不论什么字符。除了 a、b 或 c(否定)
[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 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w
单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
4 边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
\B 非单词边界
\A 输入的开头
\G 上一个匹配的结尾
\Z 输入的结尾,仅用于最后的结束符(假设有的话)
\z 输入的结尾
5 Greedy 数量词
X? X, 一次或一次也没有
X* X, 零次或多次
X+ X,一次或多次
X{n} X, 恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次。可是不超过 m 次
6 Logical 运算符
XY X 后跟 Y
X|Y X 或 Y
(X) X,作为捕获组
比如:
Email 地址的正則表達式:
//精确的 匹配
String reg = "[a-zA-Z0-9_]{6,12}@[a-zA-Z0-9]{3,6}(\\.[a-zA-Z]+){1,3}";
// 笼统的 匹配
String reg1 = "\\w+@\\w+(\\.\\w+)+";