正则表达式

  1. 正则表达式中单个字符的匹配(匹配一个位置的字符,主要为一些元字符的使用)
    代码/语法 说明
    (1) . 匹配除换行符以外的任意字符
    (2) \w 匹配字母或数字、下划线。等价于’[A­Za­z0­9_]’
    (3) \s 匹配任意的空白符,包括空格、制表符、换页符等等。等价于 [\f\n\r\t\v]
    (4) \d 匹配数字,等价于[0­9]
    (5) \b 匹配单词的开始或结束
    (6) x¦y 匹配 x 或 y
    (7) [xyz] 字符集合,匹配所包含的任意一个字符
    (8) [a­z] 字符范围。匹配指定范围内的任意字符
    注意:要注意的是,在中括号中,特殊代码不会被解释成其它意义
  2. 反义
    代码/语法 说明
    (1) \W 匹配任意不是字母、数字和下划线的字符,等价于’[∧A­Za­z0­9_]
    (2) \S 匹配任意不是空白符的字符。等价于 [∧\f\n\r\t\v]
    (3) \D 匹配任意非数字的字符,等价于[∧0­9]
    (4) \B 匹配不是单词开头或结束的位置
    (5) [∧x] 匹配除了x以外的任意字符
    (6) [∧asdfg] 匹配除了asdfg这几个字母以外的任意字符
    (7) [∧a­z] 匹配除了小写字母以外的任意字符
  3. 重复
    代码/语法 说明
    (1) * 重复零次或更多次,等价于{0,}
    (2) + 重复一次或更多次,等价于{1,}
    (3) ? 重复零次或一次,等价于 {0,1}
    (4) {n} 重复n次
    (5) {n,} 重复n次或更多次
    (6) {n,m} 重复n到m次
  4. 贪婪与懒惰
     正则表达式默认是贪婪型的,通常的行为是匹配尽可能多的字符, 我们更需要懒惰匹配,也就是匹配尽可能少的字符。前面给出的重复元字符都可以被转化为懒惰匹配模式,只要在它后面加 上一个问号 ?
    代码/语法 说明
    (1) *? 重复任意次,但尽可能少重复
    (2) +? 重复1次或更多次,但尽可能少重复
    (3) ?? 重复0次或1次,但尽可能少重复
    (4) {n,m}? 重复n到m次,但尽可能少重复
    (5) {n,}? 重复n次以上,但尽可能少重复
  5. 后向引用
    代码/语法 说明
    (1) (exp) 匹配exp,并捕获文本到自动命名的组里
    (2) (?exp) 匹配exp,并捕获文本到名称为name的组里
    (3) (?:exp) 匹配exp,不捕获匹配的文本
  6. 位置指定和负向位置指定
    代码/语法 说明
    (1) (?=exp) 匹配exp前面的位置
    (2) (?<=exp) 匹配exp后面的位置
    (3) (?!exp) 匹配后面跟的不是exp的位置
    (4) (?<!exp) 匹配前面不是exp的位置
     (?=exp):零宽先行断言,它匹配文本中的某些位置,这些位置的后面能匹配给定的后缀exp。
     (?<=exp):零宽后行断言,它匹配文本中的某些位置,这些位置的前面能给定的前缀匹配exp。
     (?!exp):零宽负向先行断言,只会匹配后缀exp不存在的位置。
     (?<!exp):零宽负向后行断言来查找前缀exp不存在的位置
  7. 这里呢我就用下面这个软件来测试一下上面的正则
    在这里插入图片描述
  8. 匹配纯文本
    (1) 纯文本看起来可能不像是个正则表达式,但它的确是。正则表达式可以包含纯文本(甚至可以只包含纯文本)。当然,像这样使用正则表达式是没什么意义,但把它作为学习正则表达式的起点还是不错的。
    (2) 随便输入几个字符来测试一下纯文本匹配
    在这里插入图片描述
    (3) 我先输入qwer这个纯文本来测试 ,可以很明显的看到黄色部分的是被匹配到的纯文本
    在这里插入图片描述
  9. 单个匹配
    (1) .(匹配除换行符以外的任意字符),这个.就比较厉害了除了换行符都匹配
    在这里插入图片描述
    (2) \w(匹配任意不是字母、数字和下划线的字符,等价于’[∧A­Za­z0­9_]),可以看到对于在括号里范围内的都带有颜色标记,反之则无
    在这里插入图片描述
    (3) [xyz](字符集合,匹配所包含的任意一个字符),只匹配在中括号内的字符,其他的单个匹配就不一一讲解了
    在这里插入图片描述
  10. 反义:它里面的正则代码是和单个匹配的意思相反,这里也不讲解了,可以看上面的解释
  11. 位置指定和负向位置指定,在这里呢我就用HTML代码来解释
    (1) 在下面这串HTML代码中匹配出span标签和其内容 ,这里呢用到了纯文本匹配和单个匹配(.),重复(+和?),零宽先行断言(?=exp)
    在这里插入图片描述
    (2) 还是匹配出span标签和其内容,用零宽后行断言和零宽先行断言来匹配出span标签
    在这里插入图片描述
  12. 正则的主要作用就是用来验证、搜索和替换,实际用到的并不多
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值