js正则学习第一章

chapter1

1.两种模糊匹配(通过string.match(regExp))
  • 横向
    • 可匹配不定长的字符串
    • Eg: /ab{2,4}c/ 可匹配"abbc abbbc abbbbc"
  • 纵向
    • 可匹配多个字符串
    • Eg: /a[123]b/ 可匹配"a1b a2b a3b"
2.1字符组
  • [123456abcdEFGH] => [1-6a-dE-H]
  • '-'表示连字符
  • 若需要匹配’-’ 则需要转义 eg: [1\-4] or [-14] or [14-] 都表示匹配’1’, ‘-’, '4’三个字符
2.2排除字符组
  • [^abc] 表示可以匹配除abc之外的所有字符
2.3常用简写
  • /d => [0-9]一位数字 /D => [^0-9] 非数字字符
  • /w => [0-9a-zA-Z_]单词字符(包括数字,字母,下划线) /W => [^0-9a-zA-Z_] 非单词字符
  • /s => [\t\v\n\r\f]各种空白符制表符等等 /S => [^\t\v\n\r\f] 非空白符
  • . => 通配符
  • 字母大写都表示为小写的反
  • 匹配任意字符[\d\D] or [\w\W] or [\s\S] or [^]
3.1量词
  • {m, } 表示至少出现m次 {m}表示出现m次
  • ?=> {0, 1)表示出现或不出现
  • + => {1, } 表示1次以上
  • * => {0, } 表示任意次
3.2贪婪匹配
  • /\d{2,3}/ 默认是贪婪匹配 连续的2-3个数字 当匹配"12 123 1234"时 结果为 12 123 123
  • 会尽可能多的匹配
3.3惰性匹配
  • /\d{2,3}?/ 在量词后加?即表示惰性匹配 当匹配"12 123 1234"时 结果为 12 12 12 34
  • 匹配到最少要求时就返回
4.多选分支
  • /good|well/ 表示匹配good或well
  • /good|goodbye/ 当匹配goodbye时会返回good 因为分支是惰性的,匹配到满足的good后就不会往后匹配了 (匹配完good : 溜了溜了~)
5.例子
- 匹配16进制颜色值: 
/#([0-9a-fA-F]{6} | [0-9a-fA-F]{3})/ 
(注意6次要在前面否则会匹配3次就溜了)
- 匹配24小时时间: 
/(\[01][0-9] | \[2][0-3]) : \[0-5][0-9]/ 
(注意分支符号的位置)
- 日期匹配yyyy-mm-dd:
/[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])/
(未考虑2月应少于30天及大小月天数问题)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值