前端灼点之正则表达式
来源:互联网 发布:雅马哈电钢琴软件 编辑:程序博客网 时间:2024/04/28 10:21
不止一次看正则表达式了,每次看完,当时感觉良好,过一段时间再回想起来时,脑子里就是一团浆糊。来吧,今天来梳理一下,希望能记得牢点。
定义
正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
闲话不多说,直接从各种乱七八糟的符号开始梳理起。便于记忆,我将主要的正则表达式符号分了转义、定位、次数、字符簇、大小写相反、其他几个类。
转义符
‘\’ : 这个和各种语言中一样,正则表达式中很多字符有特殊意义,要表示原字符就需要使用转义符,比如 ‘\’ 表示转义符而 ‘\\’表示反斜杠。
定位符
‘^’ : 表示匹配字符串的开始位置 如: ‘^a’ 匹配 ‘abbbb’ 结果为 a
‘$’ : 表示匹配字符串的结束位置 如: ‘a$’ 匹配 ‘bbbba’ 结果为 a
使用 ‘^ab$’ 匹配 ‘ab’
次数
‘*’ : 匹配前面的子表达式0或多次 ,如 ‘zo*’可以匹配 ‘z’、 ‘zo’、 ‘zoo’等
‘+’: 匹配前面的子表达式1或多次,如 ‘zo+’可以匹配 ‘zo’、 ‘zoo’等
‘?’: 匹配前面的子表达式0或1次,如 ‘zo?’可以匹配 ‘z’、 ‘zo’
{n}: 匹配前面的子表达式n次
{n,}: 匹配前面的子表达式至少n次
{n,m}: 匹配前面的子表达式至少n次,至多m次
若在这些匹配符后加上 ‘?’则使用非贪婪模式,尽可能少的匹配所搜索的字符串。如用 ‘o+’搜索 ‘ooooo’得到的结果为 ‘ooooo’,而 ‘o+?’得到的结果为 ‘o’, ‘o’, ‘o’, ‘o’, ‘o’
字符簇
字符簇用两个大括号表示 ‘[]’,注意一个字符簇只能表示一个字符,如果要表示多个,可以借用前面的次数符号。如’[abc]’ 表示a或者b或者c而不是abc
连字符可以表示范围,如 ‘[0-9]’表示所有的数字, ‘[a-z]’ 表示所有的小写字母等等。
另外在字符簇内使用 ‘^’表示 ‘非’的意思,如 ‘[^0-9]’表示所有的非数字
大小写意义相反的符号
‘\b’ : 匹配一个单词边界,也就是指单词和空格间的位置。例如, ‘er\b’ 可以匹配”never” 中的 ‘er’,但不能 匹配 “verb” 中的 ‘er’。
‘\B’ :匹配非单词边界。’er\B’ 能匹配 “verb” 中的 ‘er’,但不能匹配 “never” 中的 ‘er’。
‘\d’ :匹配一个数字字符。等价于 [0-9]。
‘\D’: 匹配一个非数字字符。等价于 [^0-9]。
‘\s’ :匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
‘\S’ :匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
‘\w’ : 匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’。
‘\W’: 匹配任何非单词字符。等价于 ‘[^A-Za-z0-9_]’。
其他
正则还有很多的其他的内容,但其实主要的就是上面这些。其他的如,
‘. ’ : 匹配除 “\n” 之外的任何单个字符 。
‘x|y’ : 匹配 x 或 y。例如,’z|food’ 能匹配 “z” 或 “food”。’(z|f)ood’ 则匹配 “zood” 或 “food”。
另外还有一些其他的符号,由于比较杂乱,这里就不归纳了,看下次能不能想个办法。实在不行就只能硬着头皮记了。
参考资料
学习正则表达式必备资料:
正则表达式系统教程.chm
封面:
正则表达式(regular expression) 关键字:正则表达式,Regular Expression 原著:笑容 创作于:2004年05月03日 最后更新:2004年05月04日 21:12 引用地址:正则表达式(regular expression) 版权声明:使用创作公用版权协议 CHM制作:姜运涛@阿涛淘网
- 前端灼点之正则表达式
- 前端笔试之正则表达式
- web前端之JavaScript正则表达式
- web前端之JavaScript正则表达式
- web前端之JavaScript正则表达式
- 前端学PHP之正则表达式函数
- 前端之js-常用正则表达式
- 前端正则表达式
- 前端正则表达式
- 正则表达式前端使用手册
- 前端正则表达式验证
- 正则表达式前端使用手册
- 正则表达式前端使用手册
- 正则表达式前端使用手册
- 正则表达式前端使用手册
- 前端js正则表达式
- 前端学PHP之正则表达式基础语法
- 前端学PHP之正则表达式基础语法
- 工厂方法模式浅析
- 父亲的年龄
- 蛇形填数
- 递归的思想生成排列组合
- 从Java的角度理解前端框架,nodejs,reactjs,angularjs,requirejs,seajs
- 前端灼点之正则表达式
- 菜鸟java方法小结
- java/MD5
- VS2012 can't find localized resources错误
- MQTT协议笔记之连接和心跳
- Linux开放21端口
- bzoj1057: [ZJOI2007]棋盘制作
- 电子电路 第一章
- 【高性能JavaScript】读书笔记