正则知识点API

正则两个网站

1. 正则在线测试工具:https://regexr-cn.com/
2. 正则练习:https://codejiaonang.com/

字符组[]

例1:/[Pp]ython/g
    可以匹配到:python,Python
    可以发现[Pp]既可以匹配到大写的P也可以匹配到小写的p

例2:/[0-9]/g
    可以匹配到:0123456789
    可以发现[0-9]把数字0-9中的任意一个都能匹配上,其中 - 表示区间

例3:/[a-z]/g
    可以匹配到:abcdefghijklmnopqrstuvwxyz
    可以发现[a-z]把小写25个英文字幕中的任意一个都能匹配上

例4:/[A-Z]/g
    可以匹配到:ABCDEFGHIJKLMNOPQRSTUVWXYZ
    可以发现[A-Z]把小写25个英文字母中的任意一个都能匹配上

例5:/[0-9a-zA-Z]/g
    匹配所有的数字,小写字母,大写字母

匹配特殊字符:----------------------------------------------------------------------------------------------------
    1. '-':因为正则中'-'表示区间,匹配 '-',需要用到转义字符:/[ \- ]/
    2. '()':转义字符:/[ \( ]/
    3. '[]':转义字符:/[ \[ ]/

取反:-----------------------------------------------------------------------------------------------------------
注意: '^'放在[]里面表示取反

例1:/[^0-9]/g
    ^表示取反,意思是不匹配0-9之间的数字

快捷方式:-------------------------------------------------------------------------------------------------------
    1. '\w':匹配字母,数字,下划线 事例:/[\w]/g
    2. '\W':匹配 非 字母,数字,下划线 事例:/[\W]/g

    3. '\s':匹配空白,比如空格,tab,换行 事例:/[\s]/g
    4. '\S':匹配 非 空白,比如空格,tab,换行 事例:/[\S]/g

    3. '\d':匹配数字 事例:/[\d]/g
    4. '\D':匹配所有的 非 数字 事例:/[\D]/g

    5. '\b':匹配单词边界
        /*
        事例:匹配单词 clever
        /[\bclever\b]/g
        在单词两边加上\b作为单词的边界,表示只匹配单词clever
        */

规定开头结尾:----------------------------------------------------------------------------------------------------
例1:/^python/g
    可以匹配到:以python开头

例2:/python$/g
    可以匹配到:以python结尾

特殊字符匹配:----------------------------------------------------------------------------------------------------

'.':匹配任意字符,不包括换行
    /*
    事例:
    /.ar/g
    表示匹配任意字符之后是ar的字符
    */
'?':指定一个字符出现1次或0次
    /*
    事例:
    /honu?r/g
    可以匹配到honur和honr
    解释:这个u可以匹配到也可以不匹配到
    */

{}

{n}:匹配n个字符 事例:/\d{3}/g 表示只能取0-9之间的三个数

{a,b}:匹配a或b个字符
    注意: 表示贪婪模式
    /*
    事例:
    /\d{3,4}/g
    能匹配到3个数字或者4个数字
    */

{a,b}?:只匹配a个字符,不匹配b个字符
    注意: ?表示非贪婪模式
    /*
    事例:
    /\d{3,4}?/g
    只匹配到3个数字
    */

{a,}:匹配大等于a个字符
    /*
    事例:
    /\d{3,}/g
    匹配到3个或更多个数字
    */
   特殊:
        '+':表示{1,} 事例:/\d+/g 表示匹配1个或多个数字
        '*':表示{0,} 事例:/\d*/g 表示匹配0个或多个数字

分组()

例1: 在一组数据 张三 0371-1234567 获取张三后面的电话号码
    解题:/(\d{4}-\d{7})/g

例2: 数据 <p> hibdgaijgfasjkgfak <p> 获取p标签中的内容
    解题:/<p>(.*)</p>/g

例3: 数据2022-3-8 提取 2022 3 28
     数据2022-03-08 提取 2022 03 08
    解题:/(\d{4}).?(\d{1,2}).?(\d{1,2})/g

或者条件:-------------------------------------------------------------------------------------------------------
例1: 数据 img1.jpg   img2.jpeg  img3.png   img4.gif 提取图片后面的后缀名
    解题:/(.jpg|.jpeg|.png|.gif)/g

非捕获分组:-----------------------------------------------------------------------------------------------------
注:分组是用来捕获数据的,当不捕获数据,却想要分组时,使用非捕获分组

语法:(?:表达式)
例1: 数据 tel:75855 提取75855
    解题:/(?:.*)(\d{5})/g

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值