zoukankan      html  css  js  c++  java
  • 正则

    正则表达式

    定义

    • 对字符串进行描述的

    作用

    • 表单验证
    • 验证 邮箱/电话/邮编 ....
    • WEB编辑器
    • 爬虫、数据抓取、小偷程序

    定义正则表达式

    • 直接量
    • 函数
    • 构造函数

    正则表达式基础

    原子

    • 正则表达式的最小组成单位
    • 普通的字母、数字、符号 都是原子
    • 转义字符
    • 字符类

    字符直接量(原子)

    • 原子的重要组成
    • 普通的字母、数字、符号
    • v
    • f
    •  退格符
    • x00
    • u0000

    字符类(原子)

    • d 数字 [0-9]
    • D 除了数字之外的字符 [^0-9]
    • w 数字、字母、下划线 [0-9a-zA-Z_]
    • W 除了数字、字母、下划线 之外的字符 [^0-9a-zA-Z_]
    • s 空白符 [ v f ]
    • S 除了空白符之外的字母 [^ v f ]
    • . 除了换行外所有的字符 [^ ]
    • [...]
    • [^...]
    • [] 匹配退格符

    重复(对原子的数量修饰)

    • + 表示前面原子出现1次或多次 {1,}
    • ? 表示前面的原子出现0次或1次 {0,1}
    • * 表示前面的原子出现0次1次或多次 任意次 {0,}
    • {m} 前面的原子出现m次
    • {m,n} 前面的原子出现m到n次
    • {m,} 前面出现的原子个数m次以上
    • 非贪婪的重复(对修饰符的修饰,后面加?)

    指定匹配的位置 (对原子位置的修饰) 边界

    •  单词边界
    • B 不是单词边界
    • ^ 字符串开始边界
    • $ 字符串结束边界
    • 先行断言(正向预查) (?=)
    • 负向先行断言(负向预查) (?!)
    • 先行断言和负向先行断言只能匹配后面的

    选择修饰符

    • | (逻辑或) /a|b/ 匹配a或者b /abc|def/ 匹配abc 或者def 字符串的结合优先级高于选择 /ab(c|d)ef/ 匹配abcef 或者abdef

    模式单元 ()

    • 改变优先级
    • 把多个原子当做一个原子
    • 把模式单元匹配的内容暂存内存 (?:) 可以取消暂存内容
    • 暂存内存的内容可以被反向引用 $1

    修饰符(模式修正符)

    • i 正则表达式不区分大小写
    • m 允许多行(换行被当做字符串结束符)
    • g 全局匹配

    正则的使用

    RegExp对象

    • test() 返回: true/false
    • exec() 返回:数组/null

    String对象

    • search() 匹配成功(第一次满足正则的位置) 匹配失败(-1)
    • match() 匹配成功(返回数组 全局匹配影响) 失败(null)
    • replace() 替换
    • split() 把字符串分割为数组 console.log("abc123".search(/d{2}/)); //3 console.log("abc123".search(/^d{2}/)); //-1

      console.log("1abc34io".match(/[a-z]{2}/)); console.log("1abc34io".match(/[a-z]{d}/)); console.log("1abc34io".match(/[a-z]{2}/g)); console.log("1abc34io".match(/[a-z]{9}/g));

  • 相关阅读:
    phpfpm进程数设置多少合适
    GitLab的安装及使用教程
    男人的中年危机坏在哪?(转载)
    让敏捷落地,从“认识自我”开始
    优化你的架构设计
    工作中的那点事儿是工作经验,还是思路给了你生存的能力(原创)
    窗口过程处理WndProc遇到的问题
    CodeBlocks 10.0+OpenCV 2.4.0配置方法
    OpenCV在VS2010下永久性配置
    Win8下的STCISP下载问题解决
  • 原文地址:https://www.cnblogs.com/zgh929/p/7445230.html
Copyright © 2011-2022 走看看