正则表达式

限定符:?   /   *   /   +   /   {数字,数字}
?:表示符号前的符号可有可无

used?:说明d有没有都可以匹配

如下图:没有?的时候只能匹配到used,添加?以后可以匹配到used、use

* :代表*前面的字符可以出现0个或多个字符

如下图:c可以不出现、可以出现一次、可以出现无数次

 + : 前面出现的字符可以出现一次或以上

如下图:abd匹配不到

 {数字} :指定出现次数

如图:ab和d中间只能出现6个C才能被匹配到

 {数字,数字}:指定出现的次数范围(如果希望的次数只有下限没有上限,则省略后面的数字:{数字,})

如图:ab和d中间可以出现2到6个C就会被匹配到

以上提到的都是单个字符,如果需要匹配字符的组合,需要将字符组合用括号括起来

如图:a和d中间出现2次以上的bc

 | :或运算符

如图:表示匹配 a cat 或者 a dog

不添加括号表示:匹配  a cat 或者 dog

字符类:

指定字符的范围:[]+

[a-z]+:表示匹配所有的小写字母

[a-zA-Z]+:表示匹配所有的小写字母和大写字母

[a-zA-Z0-9]+:表示匹配所有的小写字母、大写字母和数字

 如果添加 ^ 表示匹配除了改范围内的其他所有字符,但是包括换行符也会被匹配到

如图:表示匹配所有除了小写字母以外的字符

[^a-z] 表示与 不包含 小写字母的字符匹配

^[a-z] 匹配以小写字母 开头 的文本串

 元字符:

\d表示匹配数字 = [0-9]+

带+号表示匹配到连续的数字:即出现多次

 \w表示单词字符(英文、数字、下划线)

 \s表示空白符(包含Tab、空格、换行符)

\D表示非数字字符

 \W表示非单词字符

 \S 表示非空白字符

 .*  表示任意字符但是不包含换行符

 ^ 表示匹配后面字符位开头的字符

如图:表示匹配以a开头的字符

 $表示匹配前面字符为结尾的字符

如下图:表示匹配以a为结尾的字符

贪婪与懒惰匹配

想要匹配html标签字符

如图:如果使用<.*>会匹配整个字符串

 解决这个问题需要将正则表达式改成<.*?>其中的?会将正则表达式中默认的贪婪匹配切换成懒惰匹配

实例1:匹配以下十六进制表达的颜色

(\b表示单词字符的边界)

 如果不加\b的匹配效果

实例2:匹配文本中所有出现的ip地址

\d+匹配任何长度大于1的数字

\. 表示匹配 .

但是此时没有限制范围:因为ip地址每一位都要在0-255之间

 所以要换种方式表达:

\b(25[0-5]|2[0-4]\d|[0-1]?\d\d?\.){3}(25[0-5]|2[0-4]\d|[0-1]?\d\d?)\b

25[0-5]:表示如果是以25开头的,则第三位只能是0-5

2[0-4]\d:表示如果第一位是2开头,第二位是0-4,则第三位可以是0-9,可以用[0-9]或\d

[0-1]\d\d:表示如果第一位是0-1,则第二位和第三位可以是0-9

又因为可以是以为或者两位,不一定全部是三位数组组成的,所以其中一个的第一位和第三位加上?表示可有可无   [0-1]?\d\d?   或者  [0-1]?\d?\d

ip地址的一个数字加.的限制做好后,打好括号用{3}表示接连出现三次,第四位因为没有.所以就把\.之前的粘贴重复一次就可以了

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值