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}")