一、什么是正则表达式
1、正则表达式(简称为regex)是一些有字符和特殊符号组成的字符串
2、能按照某种模式匹配一系列有相似特征的字符串
二、
三、匹配同类型
\d 匹配数字 不能匹配小数点
\w 匹配数字和字母 如:\w{3} he666= > he6
\s 匹配任何空格字符 如:a\s{2}a cccca accc = >a a
四、边界匹配
1、用^匹配以 * * 开头
例如:^he. hello world =>hel shello world = >
2、用$匹配以* * 结尾
试想一下:. 匹配任意字符,那么如何匹配.呢?还有这些 ^$\呢
五、匹配特殊字符
需要用”"进行转义
例如:.com imooc.com =>.com
http://w+ ssshttp://www.baidu.com => http://www.baidu.com
六、指定匹配选项
使用 [] 指定要匹配的集合
例如:[abc]{2}
cba666 = > cb
xba666 = > ba
xbb666 = > bb
[a-zA-Z]{2}匹配a-z A-Z 中任意两个
使用 [^] 指定不要匹配的内容
例如:[ ^abc]{2} 只要不是abc中任意一个字符的组合
absjhk = > sj hk
七、正则表达式分组
1、重复一个字符串时
2、使用()进行分组 ,使用(?\w+)指定组名
3、从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推
使用()对匹配的内容分组
例如:192.168.1.172 ===> (\d{1,3}.){3}\d{1,3}
使用\1、\2反向引用
例如:He loves her lover
He likes her liker ===> He (l…e)s her \1r 或者 He (?l…e)s her \kr
八、贪婪模式vs非贪婪模式
贪婪匹配
在整个表达式匹配成功的前提下,尽可能多的匹配
非贪婪匹配
在整个表达式匹配成功的前提下,以最少的匹配字符
默认是贪婪模式
贪婪模式举例
表达式:ab.+c
测试数据:abacabahc
匹配结果:abacabahc
非贪婪模式
只需在匹配pattern中加上”?“
测试数据:abacaxcd
匹配结果:abac