正则表达式:---主要用于查寻等操作
1、很多之后我们都需要对一些字符进行匹配,查找,替换等
复杂的操作,我们需要通过一些表达式进行这些复杂的操作。
2、这个表达式就是正则表达式,他是一串有”特殊意义“的字符串
我们可以称之为规则表达式
常用的字符集:
[]:表示匹配括号内的一个字符
[abc]表示匹配abc中的任意一个字符
[a-z]表示匹配a~z中的任意一个字符
[0-9]表示匹配0~9中的任意一个字符
[a-z0-9A-Z]表示匹配这些字符中的任意一个
[]:表示匹配除了a字符的任意一个字符
字符集的匹配一般使用的是match()方法,返回值布尔类型
预定义字符集:
. :表示匹配任意一个字符
\d :表示匹配任意一个数字字符,相当于[0-9]
\w :表示匹配任意一个单词字符,相当于[a-zA-Z0-9_]
\s :表示匹配任意一个空格字符,相当于[\t\r\n\b ]
\D :表示匹配任意一个非数字字符,相当于[^0-9]
\W :表示匹配任意一个非单词字符,相当于[^a-zA-Z0-9_]
\S :表示匹配任意一个非空格字符,相当于[^\t\r\n\b ]
一些特殊字符需要使用转义字符:“\”
数量词:
x :表示字符集
x? :匹配x 0个或1个
x+ :匹配x 一个或一个以上
x* :匹配x 0个或0个以上
x{m} :匹配x m个
x{m,} :匹配x m个以上,包括m个
x{m,n}:匹配x m到n个
分组:
()将正则表达式的部分规则进行了划分,可以使用|来进行选择其中一组规则
reg:是手机号前带有区号
+86 13844220539
0086 13844220539
正则表达式:
(+86|0086)?\\s?1\\d{10}
判断一个字符串是不是一个网址
^和$(无法验证)
有时,我们想校验一个字符串是不是从头到尾都符合一个规则校验
此时需要在正则表达式前后添加相应的符号:
^:添加在正则表达式前,表示要校验的普通字符串的开头就必须符合规则
$:添加在正则表达式末尾,表示要校验的普通字符串的末尾必须符合规则
前后都有此符号时,考虑的是普通字符串的整体
reg:
"^.[6,8]"
"123456AAAAAAAAAA"可以满足上述正则表达式
"[\\d]{6,8}$"
"abc123456"可以满足上述正则表达式
"^[\\d]{6,8}$"
"12345678abc12345678"不符合
matches(String regex):此方法验证不了我们自定义时添加的^或$
因为当把正则表达式传入方法内时,内部逻辑帮助添加了^和$
总结:正则表达式是一个灵活,逻辑性强的规则校验语法
通常用于文本中,定义正则表达式的时候,要注意表达式在匹配
时是从左到右匹配的,所以定义正则表达式时,要处理好顺序,其次
正则表达式逻辑比较强,需要考虑多种情况测处理