decoration: line-through;">作为一个正经计算机专业毕业,编译原理90+,深谙DNF…啊呸,DFA,NFA的好学生,已经沦落到靠搜索引擎写正则表达式了???深感不安,特意学习下。
参考:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions
https://juejin.im/post/5b6adc7ee51d4534b8587560
↑ 这个文章写得真的很好,decoration: line-through;">抄…总结一下为了加深记忆。
http://www.cnblogs.com/zxin/archive/2013/01/26/2877765.html
创建正则表达式最好通过字面量创建,把需要匹配的字符写在两条斜线中间, reg = /.../ ,匹配选项写在后面。
元字符,元字符是在正则表达式中有特殊含义的非字母字符。
中包含一组字符,表示可以匹配任意一个。
表示匹配其中不包含的任意一个字符。
匹配范围内任意一个字母
修饰符:
: multiple 多行搜索 ,检测字符串中的换行符,主要是影响字符串开始标识符^和结束标识符$的使用
转义字符
边界字符
匹配开头
匹配结尾
匹配单词边界
非单词边界
heading" data-id="heading-9">预定义类
匹配除了回车符和换行符之外的所有字符,等价于[^\r\n]
匹配一个数字。
等价于[0-9]
匹配一个非数字字符。
等价于[^0-9]
。
匹配一个换行符
匹配一个回车符
匹配一个非空白字符。
匹配一个单字字符(字母、数字或者下划线)。等价于[A-Za-z0-9_]
。
匹配一个非单字字符。等价于[^A-Za-z0-9_]
。
heading" data-id="heading-11">量词
heading" data-id="heading-11"> 出现零次或一次(最多出现一次)
heading" data-id="heading-11"> 出现一次或者多次(至少出现一次)
heading" data-id="heading-11"> 出现零次或者多次(任意次)
heading" data-id="heading-11"> 出现n次
heading" data-id="heading-11"> 出现n到m次
heading" data-id="heading-11"> 至少出现n次
<p class="heading" data-id="heading-12">贪婪模式
正则表达式默认是贪婪模式,即每次匹配都尽可能的匹配多的字符,直到匹配失败为止。取消贪婪模式,在量词后面加上'?'即可。
<p class="heading" data-id="heading-13">分组
<p class="heading" data-id="heading-13"> <span class="cnblogs_code">( )
<p class="heading" data-id="heading-13">不希望捕获某些分组,只需要在分组内加上'?:'就可以了。
<div class="cnblogs_code">
reg = /(?:Byron)(\d{4})-(\d{2})-(\d{2})/ text = 'Byron2016-12-05'
result = text.replace(reg,'$2/$3/$1'