java之正则表达式总结

第一部分:正则表达式


1、正则表达式:符合一定规则的表达式。

作用:用于专门操作字符串。

特点:用于一些特定的符号来表示一些代码操作。这样就简化书写。所以学习正则表达式,就是在学习一些特殊符号的使用。

好处:可以简化对字符串的复杂操作。

弊端:符号定义越多,正则越长,阅读性越差。


Regex

pattern 正则包装类


2、正则表达式的构造摘要:

字符 
x    字符 x 
\\     反斜线字符 
\t    制表符 ('\u0009') 
\n    新行(换行)符 ('\u000A') 
\r    回车符 ('\u000D') 

\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 
\f 换页符 ('\u000C') 
\a 报警 (bell) 符 ('\u0007') 
\e 转义符 ('\u001B') 
\cx 对应于 x 的控制符 
  
字符类 
[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](减去) 
  
预定义字符类 
.      任何字符(与行结束符可能匹配也可能不匹配) 
\d     数字:[0-9] 
\D    非数字: [^0-9] 
\w     单词字符:[a-zA-Z_0-9] 

\s 空白字符:[ \t\n\x0B\f\r] 
\S 非空白字符:[^\s] 
\W 非单词字符:[^\w] 

  边界匹配器 
^     行的开头 
$     行的结尾 

\b     单词边界 


\B 非单词边界 
\A 输入的开头 
\G 上一个匹配的结尾 
\Z 输入的结尾,仅用于最后的结束符(如果有的话) 
\z 输入的结尾 
  
Greedy 数量词 
X?        X,一次或一次也没有 
X*        X,零次或多次 
X+        X,一次或多次 
X{n}        X,恰好 n 次 
X{n,}      X,至少 n 次 
X{n,m}   X,至少 n 次,但是不超过 m 次 
  
Reluctant 数量词 
X??         X,一次或一次也没有 
X*?         X, 零次或多次 
X+?        X,一次或多次 
X{n}?      X,恰好 n 次 
X{n,}?     X,至少 n 次 
X{n,m}?  X,至少 n 次,但是不超过 m 次 
  
Possessive 数量词 
X?+       X,一次或一次也没有 
X*+       X,零次或多次 
X++       X,一次或多次 
X{n}+     X,恰好 n 次 
X{n,}+    X,至少 n 次 
X{n,m}+ X,至少 n 次,但是不超过 m 次 


3、反斜线、转义和引用 
反斜线字符 ('\') 用于引用转义构造,如上表所定义的,同时还用于引用其他将被解释为非转义构造的字符。因此,表达式 \\ 与单个反斜线匹配,而 \{ 与左括号匹配。 

在不表示转义构造的任何字母字符前使用反斜线都是错误的;它们是为将来扩展正则表达式语言保留的。可以在非字母字符前使用反斜线,不管该字符是否非转义构造的一部分。


4、具体操作功能:

1,匹配:String  matches方法。用规则匹配整个字符串,只要有一处不符合规则,就匹配结束,返回false。

2,切割:String split()方法,

3,替换:String replaceAll(regex,str);如果regex中有定义组,可以在第二参数中通过$符号获取正则表达式中的已有的组。符合一定规则的表达式

4,获取:将字符串中的符合规则的子串取出(参看网页爬虫)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值