三十、正则

1、java方法

public boolean matches(String regex) :如果匹配正则表达式就返回true,否则返回false

2、逻辑运算符

&&:并且

"zad".matches("[a-z&&[^aeiou]]ad");

|:或

"zad".matches("[a|e|i|o|u]ad");

2、正则直接量

直接量表达式:/pattern/modifider

pattern 字符串模板
	\d		数字
	\d+		得到第一个或多个数字
	\d\d\d	获取连续3个数字
modifider 修饰符
	i		忽略大小写
	g		全局匹配,默认只匹配一次
	m		多行匹配
	.		匹配所有字符,除了\n\r\t
	
	修饰符 可以组合使用,如:/ig

3、pattern

【基本】
	1、/a/ 基本
【或】
	2、/a|b/ 或
【[]范围词  里面以或者并存】
	3、/[abc]/ 匹配中括号中任意一个字节,或
	4、/[a-z]/,/[A-Z]/ 可以匹配a~z任意字母
	5、/[0-9]/
	6、/[0-9a-zA-Z]/
  非
	7、/[^abc]/ 匹配非a非b非c
  匹配中文
	8、/[\u4e00-\u9fa5]/

	注意:特殊符号在范围括号中不具备意义

【() 整体】

4、元字符(转义字符、预定义字符)

/\w/ 匹配单词字母, _ ,数字; [a-zA-Z_0-9]
/\W/ 非\w的就匹配      
/\d/ 匹配数字 [0-9]
/\D/ 匹配非数字 [^0-9]
/\s/ 匹配空格
/\S/ 匹配非空格
/\b/ 单词边界。除字母, _ ,数字之外都不是单词边界
        you  you啊   youhh(false)
/\B/  非单词边界

【特殊】
/./   除换行其他都匹配
/\./  只匹配'.';
/\\/  只匹配\
/\//  只匹配/
        
\n  匹配换行

验证匹配3为数字

"233".matches("\\d{3}");

验证手机号

"13856478569"matches("1[358]\\d{9}");

5、量词

量词:
	\d{n}  匹配连续n个数字
	{n,m}  最少n,最多m
	{n,}   最小n次,最大无穷

	特殊
	{1,}   类似+  匹配1个或者无穷
	{0,1}  类似?  匹配0个或者1个
	{0,}   类似*   匹配0个或者无穷

	n?m		匹配m前0次或者一次n    ? = {0,1}
	n*m  	匹配m前任意次数n		* = {0,}
	n+m  	m前至少出现一次n   	+ = {1,}
	n{num,num}m  	m前 最少几个到 最多几个n
	n{num,num}


贪婪,惰性   在量词后加?就是惰性
	贪婪:尽可能多的匹配   默认贪婪
	惰性:尽可能少的匹配 量词后面加?


/\d??/ 第一个问号是量词问号,匹配零次或一次。第二问号是惰性匹配,尽可能少的匹配 

6、分组

将要重复使用的正则用小括号括起来,当一个小组看待

激活码

"ADFAS-ADG56-AG5GG-AGDF5-AG56G".matches("([A-Z0-9]{5}-){4}[A-Z0-9]{5}")
上一篇:正则表达式 按组捕获


下一篇:PHP 提取字符中 省、市、区、详细地址