正则表达式 基础专题

参考:

https://juejin.im/post/5965943ff265da6c30653879

http://blog.didispace.com/regular-expression-all/

第1章 正则表达式字符匹配

惰性匹配:

/\d{2,5}?/表示匹配2次就够,使用:量词后面加个问号

 

第2章 正则表达式位置

^(开头) $(结尾) \b(单词边界 \B(非单词边界) (?=p) (p前面的位置)  (?!p)

 

第3章 正则表达式括号

正则替换:

"2017-06-12".replace(/(\d{4})-(\d{2})-(\d{2})/, "$2/$3/$1");

或者

"2017-06-12".replace(/(\d{4})-(\d{2})-(\d{2})/, function(match, year, month, day) {
	return month + "/" + day + "/" + year;
});

正则提取:

"2017-06-12".match(/(\d{4})-(\d{2})-(\d{2})/) // => ["2017-06-12", "2017", "06", "12", index: 0, input: "2017-06-12"]

反向引用:

/\d{4}(-|\/|\.)\d{2}\1\d{2}/.test("2016-06/12") // false  \1引用(-|\/|\.)

非捕获分组:

"ababa abbb ababab".match(/(?:ab)+/g)  // => ["abab", "ab", "ababab"] (?:ab)为非捕获组

第4章:正则表达式回溯法原理

一句话就是匹配到结尾发现不满足正则表达式, (若已有回退则回退至回退前的上一步)直到满足条件结束

第5章 正则表达式的拆分

竖杠“|”,的优先级最低

1.转义符 \
2.括号和方括号 (...)(?:...)(?=...)(?!...)[...]
3.量词限定符 {m}{m,n}{m,}?*+
4.位置和序列 ^ 、$、 \元字符、 一般字符
5. 管道符(竖杠)|

上面操作符的优先级从上至下,由高到低。

 

辅助工具:

http://www.regexper.com/

https://regexr.com/

 

第6章 正则表达式的构建

其它:

正则字符拼接:

new RegExp('[' + Object.keys(escapeChars).join('') +']', 'g')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值