正则表达式的使用
一、正则表达式的定义
目的:为了查找符合某些复杂规则的字符串
定义:正则表达式就是用来描述一些复杂规则的工具,即用来记录文本规则的代码。
二、单个字符的匹配(元字符)
1.匹配开始或者结束
⑴ \b :匹配单词的开始或结束;
⑵ ^ :匹配字符串的开始;
⑶ $ :匹配字符串的结束;
2.匹配字符
⑴ • :匹配除换行符以外的任意字符;
⑵ \w :匹配数字、字母、下划线、汉字;
⑶ \s :匹配任意的空白字符;
⑷ \d :匹配数字;
3.字符类 [] :实现在一个范围内匹配某一个字符
⑴罗列字符:在[]中罗列需要匹配的字符即可;
⑵匹配特殊字符:不需要使用转移字符转义,直接将要匹配的特殊字符放在[]内即可;
⑶指定范围:[]中存放一个范围,匹配范围内的任意字符;
4.反义字符
⑴大写字母表示的反义:与对应的小写字母含义相反
①\W :匹配任意不是数字、字母、下划线、汉字的字符;
②\S :匹配任意不是空白符的字符;
③\D :匹配非数字的字符;
④\B :匹配不是单词开头或结束的位置;
⑵[^ ]表示反义:匹配除了括号内^后面的字符
三、多个字符的匹配–限定符:限定重复次数
-
- :重复零次或更多次;
-
- :重复一次或更多次;
- ? :重复零次或一次;
4.{n}:重复n次
5.{n,}:重复n次或更多次;
6.{n,m}:重复n到m次;
四、转义字符 \
如果要查找元字符本身,用字符\来取消掉元字符所代表的特殊含义,使它只表示本身的意义。
例如:.是一个元字符,表示匹配除换行符以外的任意字符
若要匹配字符串中的“.”,则要使用转义字符
五、替换
1.定义:用|把不同的规则分隔开,只需要满足其中任意一种规则就可以被匹配。
例如:匹配两种以连字号分隔的电话号码,一种格式是:010-12345678(3位-8位),另一种是0357-1234567(4位-7位),两种电话都以0开头
表达式:0\d{2}-\d{8}|0\d{3}-\d{7}
2.顺序:匹配替换时,将会从左到右的测试每个分支条件,如果条件满足了某个分支的话,就不会去管其他的替换条件了。就是说,虽然匹配条件有多个,但是只会匹配到符合一个条件的一个结果
例如:将上面案例替换顺序颠倒一下,则匹配结果就会不同
六、重复 ()
想要重复使用一个字符串,可以用()来对该字符串进行分组,然后制定该分组的重复次数,也可以对分组进行其他的操作。
例如:匹配IP地址格式类似于192.168.0.110
表达式:(\d{3}.){2}0.\d{3}
小括号内\d表示匹配数字,{3}表示数字重复次数是3,即匹配的数字是三位数,\是转义符,把.的特殊含义取消,只单纯匹配一个.,{2}表示小括号指定的分组重复次数为两次