• 正则表达式


    实用招式

    str.replace(reg,'123$1')	$&指整体,$1指第一个原子组
    str.replace(reg, (v,p1,p2)=>{return 123 + p1})
    
    • 1
    • 2

    纲要

    创建方式

    • 字面量
    • new对象 new RegExp(‘正则表达式’,‘修饰符’)

    模式修正符

    • ig 不区分大小写,全局匹配
    • u 当使用语法元素\p的时候,要用上u模式

    元字符(最小单位)

    • \d 数字
    • \D 除了数字
    • \w 字母、数字、下划线
    • \W 除了字母、数字、下划线
    • . 除了换行符,其余所有字符
    • \s 空格、制表符、换行
    • \S 除了空格、制表符、换行
    • 空格和普通字符abc一样
    • \n 换行符

    转义

    • 使用反斜杠\
    • 对象的方式创建正则时,双反斜杠才能表示转义 \n

    选择符 |

    • 左边全部和右边全部内容 /abc|123/ abc或者123

    重复匹配(默认是贪婪的)

    • ? 0个或1个
    • *星号 0个或多个
    • +加号 1个或多个
    • {1,3} 1个到3个
    • 禁止贪婪 ?? *? +? {1,3}?
    • 禁止贪婪的场景:禁止.+把后面所有内容都给匹配完了

    边界限制

    • ^和$一起使用,起到完整匹配的作用

    原子表 (单个字符)

    • 区间 [0-9]
    • 排除 [^abc135]
    • 原子表中的+和.不会被解析 例如:[123+] 1或2或3或+

    原子组

    • 组编号 数左括号是第几个
    • 组取别名 (?左括号title右括号abc) str.replace(reg, ‘123$左括号title右括号456’)
    • 不记录组 (?:.*)

    断言(条件语句)

    • /中国人(?= )/ 匹配后边是空格的’中国人’
    • /(?<= )中国人/ 匹配前边是空格的’中国人’
    • /中国人(?! )/ 匹配后边不是空格的’中国人’
    • /(?
    • /^(?! .星绿色.星).*/ 匹配字符中不能出现绿色

    正则方法

    • test 检测是否能找到匹配的字符
      使用多个正则完成验证 regs.every(reg=>{return reg.test(str)})
    • exec 配合lastIndex和while能完成全局匹配

    能使用正则的字符创方法

    • replace
      str.replace(reg,‘123$1’) $&指整体,$1指第一个原子组
      str.replace(reg, (v,p1,p2)=>{return 123 + p1})
    • match
      正则非全局模式,返回第一个匹配项中包括组的详细信息
      正则全局模式,返回多个匹配项,但不含详细信息
    • matchAll 返回一个迭代对象,使用for of,可以拿到各个匹配项的所有详细信息
    • search str.search(reg) 返回匹配的子字符串的起始位置
    • split str.split(reg)
  • 相关阅读:
    Cookie与Session详解
    python带你采集不可言说网站数据,并带你多重骚操作~
    c++11日期和时间工具-(std::chrono::system_clock)
    使用pymodbus进行modbus-TCP通信
    坐山观虎斗,四两拨千斤
    vue:v-model实现子组件和父组件数据双向绑定
    《基层女性》摘录
    第十一章·组合模式
    elementUI 特定分辨率(如1920*1080)下el-row未超出一行却换行
    Debian12系统下LAMP环境中Nubuilder4.5的安装
  • 原文地址:https://blog.csdn.net/weixin_43390711/article/details/134024099