黑马程序员 ---------- Java网络技术之 ---正则表达式 (Day06)

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

正则表达式
正则表达式:基本知识
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+)+";


 

 
---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------
详细请查看:www.itheima.com

黑马程序员 ---------- Java网络技术之 ---正则表达式 (Day06),布布扣,bubuko.com

黑马程序员 ---------- Java网络技术之 ---正则表达式 (Day06)

上一篇:POSIX 线程详解(2-线程创建和销毁)


下一篇:C++ Daily 《5》----虚函数表的共享问题