正则表达式相关

本文详细介绍了正则表达式中的各种元字符及其用法,包括如何匹配字符串的起始和结束位置、单词边界、特定字符等。此外还解释了贪婪匹配与懒惰匹配的区别,并提供了具体的例子。

元字符

  • “^”:这个会匹配行或者字符串的起始位置,有时还会匹配整个文档的起始位置。
  • “$”:这个会匹配行或者字符串的结尾。
  • “\b”:不会匹配两边的字符,他会识别是否为单词的边界。
  • “\d”:匹配数字
  • “\w”:匹配字母数字和下划线
  • “\s”:匹配空格
  • “.”:匹配除了换行以外的任何字符

反义字符

  • “\W”:匹配任意不是字母数字下划线的字符
  • “\S”:匹配任意不是空白符的字符
  • “\D”:匹配任何非数字
  • “\B”:匹配任何非单词开头或结束的位置
  • “[^12b]”:匹配任何除12b以外的任意字符

在正则表达式中,默认是贪婪匹配的,那什么是贪婪匹配呢?

        var text="aaaaaaaaaaa bat cat aaa apple";
        var pattern1=/a*/g;
        var matches=pattern1.exec(text);
        console.log(matches[0]);//aaaaaaaaaa
        var pattern2=/a?/g;
        var matches2=pattern2.exec(text);
        console.log(matches2[0]);//a
  • 贪婪匹配 “*”:重复0次或多次,在我使用/a*/的时候,匹配出来的就是所有的a
  • 懒惰匹配 “+”:重复1次或更多次,与贪婪不同的是他至少一次
  • 占有匹配 “?”:重复0次或1次,如同上例,只会匹配到一个字符,现实的结果就是a
  • “{n}”:重复n次例如从aaaaaa中取俩字符,正则:”/a{2}/”
  • “{n,m}”:重复n次到m次:例如”a{1,2}”,匹配的是”a”也可以是”aa”
  • “{n,}”:重复n次或者更多次,至少n次
  • “*?”:重复任意次,但是尽可能少,例如123123,"/1.*?3/"只会匹配到第一个123
  • “+?”:重复1次或更多次,至少一次
  • “??”:重复0次或1次,尽可能少
  • “{n,m}?”:重复n~m次,尽可能少重复
  • “{n,}?”:重复n次以上,尽可能少
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值