正则表达式

正则表达式用来描述匹配字符串格式的它只关心格式。

字符集合:
[ ] 表示一个字符,内容是括号中所指定的; 符号: ^除了、-表范围、&&包含
如:[abc] 代表a、b、c中任意一个字符
[^abc]代表除了a、b、c中任意一个字符
[a-z] a到z中的任意一个字符
[a-zA-Z0-9] 代表a到z、A到Z、0到9中任意一个字符
[a-z&&[^bc]] a到z中除了b和c以外的的任意一个字符,

预定义字符 :
. 代表任意一个字符
d 任意一个数字字符,相当于[0-9]
w 任意一个单词字符(单词字母下划线),[a-zA-Z0-9_]
s 空白字符,相当于[ x0Bf ]
D 除了数字字符的任意一个字符;W、S同理

数量词:?、*、 +、 { }
?表示出现0次或1次
如:[abc]? 表示只能出现a、b、c 一次 或者不出现

* 表示出现0或任意次
如:[abc]* 表示可以出现a、b、c任意的组合 或者不出现

+表示出现1到任意次
如:[abc]+ 表示可以出现1次到任意次的a、b、c任意的组合

{}表示出现次数的范围
如:[abc]{3} 表示在a、b、c中 只能出现三次 //abc 、abb合理
[abc]{3,} 表示至少出现三次及以上的a、b、c任意的组合
[abc]{3,10} 表示至少出现三次到10次的a、b、c任意的组合
正则表达式中

分组 ():
()将里面的内容看成一个整体
如:(abc){3} 表示abcabcabc
若想出现不同的组合用|
如:(abc|das){3} 表示出现abc或das 一共三次


边界符 ^ $:
正常在正则表达式中 只要是字符串中一部分内容符合要求就可以通过
比如[abc]{3} sdasdasfeeaaah 通过//因为aaa是符合要求的
但是java是严格匹配的相当于^[abc]{3}$

^限制开始的字符串
^[abc]{3} 代表前三个字符须符合要求 abbgfdgsas 通过
$ 限制结束的字符串
$[abc]{3} 代表后三个字符须符合要求 fsaffagbaa 通过
^[abc]{3}$ 代表严格只出现[]中任意字符三次 aba通过 abaa错误

为转义字符 . 就是代表. 而不是任意字符
因为java中有特定的转义字符 如 等 所以在写正则表达式时候要写成 \.

原文地址:https://www.cnblogs.com/zqf-bczl/p/13369737.html