美文网首页
学习正则表达式

学习正则表达式

作者: CoderZb | 来源:发表于2019-01-25 11:07 被阅读6次

学习正则表达式,最好分好类,这样才有助于记忆各种符号。

序号 符号 含义 举例
1 . 匹配除换行符以外的任意单个字符 .b: 匹配 somebody中的eb,匹配 hobby中的ob。
2 \w 匹配字母或数字或下划线。等同于[0-9a-zA-Z_] 。如果\w后面不加区间,默认只匹配单个字符。 \w:匹配hh12_5a中的h\w{8,16}:匹配不到hh12_5a\w{8,16}:匹配hh12_5ab中的hh12_5ab\w{8,16}:匹配hh12_5abccd中的hh12_5abccd\w{8,16}:匹配hh12_5abccccccccd中的hh12_5abcccccccc,因为d是第17个,所以不会匹配到
3 \s 匹配任何不可见字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v] \s:会依次匹配到hh 1 2_3 5a中的空格,一共三个。
3 \S 匹配任何可见字符。等价于[^ \f\n\r\t\v] \S:会依次匹配到abc def g中的a ,b,c,d,e,f,g
3 \t 匹配一个制表符。等价于 \x09和\cI
4 \d 匹配一个数字.等价于[0-9] \d:会依次匹配到9999 65 24中的 9,9,9,9,6,5,2,4,每次只会匹配到一个数字。 \d\d:会匹配连续的两个数字,例如会依次匹配到9999 65 24中的99,99,65,24,每次只会匹配到两个数字。
4 \D 匹配一个非数字字符。等价于[^0-9]
4 \v 匹配一个垂直制表符。等价于 \x0b和\cK
4 \f 匹配一个换页符。等价于\x0c和\cL
4 \n 匹配一个换行符。等价于\x0a和\cJ
4 \r 匹配一个回车符。等价于\x0d和\cM
5 ^ 匹配字符串中开始位置的字符 ^c: 匹配 coderZB 中的 c,但不匹配 ZBcoder中的 c。^[0-9]: 匹配字符串开始位置是数字的字符串
6 $ 匹配字符串中结束位置的字符 B$: 匹配 coderZB 中的 B,但不匹配 coderZBMan 中的 B。\s$: 匹配字符串结尾是空格、制表符、换页符等等的字符串
7 [xyz] 匹配字符列表中的任意字符,可以通过连字符 - 指定字符范围。 [mno]:也可以表示为 [m-o],它匹配 noob 中的 n,匹配 mnemonics 中的 mn 与 mo。
8 x|y 匹配 x 或 y sky|water 匹配 blue sky 中的sky 和 hot water 中的 water。

按重复划分

序号 符号 含义 举例
1 * 匹配* 之前的字符 0 次或 +∞次 zb*: 依次匹配 coderzbzbcoder 中的 zbzb,也就是匹配到zb两次。zb*:依次会匹配zbcoderzcoder中的zbz
2 + 匹配+之前的字符1次或+∞次。 c+ : 依次匹配coderZBccccc 中的ccccccc[a-zA-Z]+:匹配不分大小写字母的英文单词(无限字母) ,所以匹配coderZBccccc中的coderZBccccc[a-zA-Z]+:匹配coder3ZBccccc中的coderZBccccc
3 ? 匹配?之前的字符0次或1次。匹配 ? 字符的话,使用 \?,将?转义一下。 le?:匹配excellent中的l或者excellent中的le。解释:le?是l加e?的形式。根据定义,e为{0,1},就是0个e和1个e。最终le?分为l或者le的情况, 所以当为l的时候,匹配到的是l,当为le的时候,匹配到的是le
4 {n} n 为正整数,匹配之前的 n 个字符。 b{2}: 匹配bbasketball中的bb。不匹配 basketball中的b,因为只有一个b。
5 {n,} 重复n次或+∞次 b{2,}:匹配 bbasketball 中的 bb 以及 bbbasketball 中的 bbb.不匹配basketball 中的b
6 {n,m} 重复n到m次 b{2,3}: 匹配 basketball 中的任何 b,它匹配 bbasketball 中的 bb 以及 bbbasketball 中的 bbb。但在 bbbbasketball 中,只匹配前 3 个 b。

按取反划分

序号 符号 含义 举例
1 \W 匹配任意不是字母,数字,下划线,汉字的字符。等价于[^A-Za-z0-9_]
2 \S 匹配任意不是空白符的字符。等价于[^ \f\n\r\t\v]
3 \D 匹配任意非数字的字符。 等价于[^0-9]
4 \B 匹配不是单词开头或结束的位置。
5 [^c] 匹配除了c以外的任意字符 。
6 [^coderzb] 匹配除了coderzb这几个字母以外的任意字符。 [^acoderzb]:依次匹配jianshucoderz1b中的j,i,n,s,h,u,1
2 \W 匹配任意不是字母,数字,下划线,汉字的字符

相关文章

  • java 正则表达式 简单入门

    java 正则表达式用法 最近学习编译原理,要用到正则表达式。本次要学习如何用java正则表达式。正则表达式:可以...

  • 优秀网站收藏

    php学习的最好资源--QuorafreeCodeCamp正则表达式练习+学习程序员直播平台正则表达式学习chan...

  • 写正则表达式的正确姿势

    前言 上一篇文章我们学习了正则表达式原理,这次我们学习下怎么写正则表达式。这里,我们不会学习正则表达式的各种符号,...

  • 2018-01-22重命名

    正则表达式的学习

  • 正则表达式学习链接

    正则表达式学习链接OC 正则表达式30分钟入门教程

  • Python密码校验脚本

    最近学习python,学习中写了一个密码校验的脚本,其实主要就是用到了正则表达式,顺便也学习了一下正则表达式...

  • PostgreSQL正则表达式

    PostgreSQL正则表达式 编程,是一种触类旁通的技能。 学习正则表达式我是通过python这门语言学习的。没...

  • Biostar学习笔记(6)正则表达式和序列比对

    正则表达式 学习资料: Intro to Regular expressions 30分钟入门正则表达式 为什么要...

  • 正则表达式

    使用正则表达式 来源Github项目:jackfrued/Python-100-Days仅供学习参考 正则表达式相...

  • 正则表达式浅略学习

    在javascript编程中,会时常用到正则表达式。因此,决定对正则表达式进行学习。 学习的目的主要是能够在编程中...

网友评论

      本文标题:学习正则表达式

      本文链接:https://www.haomeiwen.com/subject/mhmcjqtx.html