正则表达式

创建方式

  • 字面量
  • 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或+

原子组

  • 组编号 数左括号是第几个
  • 组取别名 (?.*) str.replace(reg, '<h1>$<title>')
  • 不记录组 (?:.*)

断言(条件语句)

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

正则方法

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

能使用正则的字符创方法

  • replace
    str.replace(reg,'1231') &指整体,$1指第一个院子组
    str.replace(reg, (v,p1,p2)=>{return 123 + p1})
  • match
    正则非全局模式,返回第一个匹配项中包括组的详细信息
    正则全局模式,返回多个匹配项,但不含详细信息
  • matchAll 返回一个迭代对象,使用for of,可以拿到各个匹配项的所有详细信息
  • search str.search(reg) 返回匹配的子字符串的起始位置
  • split str.split(reg)
相关推荐
阿昭L20 小时前
正则表达式
正则表达式·编译原理
波力海苔夹心脆6752 天前
C# 正则表达式零基础入门:从“看得懂“到“会用“
经验分享·后端·mysql·正则表达式·c#
FRing033 天前
JavaScript入门到精通二十四(正则表达式、元字符、修饰符)
开发语言·前端·javascript·正则表达式
小白快快跑哦4 天前
python-字符串全解(六):正则表达式-元字符与转义
python·正则表达式·字符串·元字符·转义
小白快快跑哦6 天前
python-字符串全解(六):正则表达式-逻辑运算或
python·正则表达式·字符串·逻辑运算
MoRanzhi12037 天前
106.正则问题(分治)
python·算法·正则表达式·蓝桥杯·递归·分治算法·字符串处理
临床数据科学和人工智能兴趣组8 天前
在R语言的生态系统中,字符串处理一直是一个重要且复杂的任务
开发语言·正则表达式·r语言·r语言-4.2.1
小白快快跑哦9 天前
python-字符串全解(六):正则表达式-前后相断言
开发语言·python·正则表达式·前后相断言
小白快快跑哦10 天前
python-字符串全解(六):正则表达式-修饰符
python·正则表达式·修饰符
11路没有终点10 天前
正则表达式(Regex)通用学习文档
正则表达式