正则表达式快速掌握

目录

语法

修饰符

元字符

边界符

量词

字符类

预定义

分组和捕获

分组

捕获


语法

test(),查看正则表达式与指定的字符串是否匹配

javascript 复制代码
    const reg =/前端/
    // test(),查看正则表达式与指定的字符串是否匹配
    const res = reg.test('学前端,找黑马')//匹配到返回true,匹配不到返回false
    console.log(res);

exec(),查找符合规则的字符串

javascript 复制代码
const reg =/前端/
    // exec(),查找符合规则的字符串
    const res = reg.exec('学前端,找黑马')
    console.log(res);

replace(),用来替换字符串中符合规则的字符

javascript 复制代码
    const reg =/前端/
    // replace(),用来替换字符串中符合规则的字符
    const str = '学前端,找黑马'
    const res = str.replace(reg,'java')
    console.log(res);//可以用于敏感词替换

match(),在字符串内检索指定的值,或找到一个或多个正则表达式的匹配

javascript 复制代码
    const reg =/前端/
 // match(),在字符串内检索指定的值,或找到一个或多个正则表达式的匹配
    const str = '学前端,找黑马'
    console.log(str.match(reg));

修饰符

i:ignore的缩写,正则匹配时字母不区分大小写

javascript 复制代码
    //i:ignore的缩写,正则匹配时字母不区分大小写
    const reg =/a/
    console.log(reg.test('a'));//true
    console.log(reg.test('A'));//false
    const reg =/a/i
    console.log(reg.test('a'));//true
    console.log(reg.test('A'));//true

g:单词global的缩写,匹配所有满足正则表达式的结果

javascript 复制代码
 //g:单词global的缩写,匹配所有满足正则表达式的结果
    const reg =/java/g
    const str ='java,我爱java,我喜欢java'
    console.log(str.replace(reg,'前端'))

修饰符可以写多个,且不分顺序

javascript 复制代码
//     可以写多个修饰符
    const reg =/java/gi//不分顺序

元字符

边界符

单词边界 \b

javascript 复制代码
  //单词边界 \b
    const reg =/\bcat\b/g
    const str ='the cate cat is blue'
    console.log(str.replace(reg,'dog'))

字符串边界 ^ $

javascript 复制代码
  //字符串边界 ^  $
    //^以......开头
    const reg = /^a/
    console.log(reg.test('abc'));//true
    //$以......结尾
    const reg = /a$/
    console.log(reg.test('bca'));//true
    const reg = /^a$///表示精确匹配
    console.log(reg.test('abca'));//false

量词

*表示0或更多次

javascript 复制代码
 const reg = /^a*$/
    console.log(reg.test('aaa'));//true
    console.log(reg.test(''));//true
    console.log(reg.test('b'));//false

+表示1或更多次

javascript 复制代码
   const reg = /^a+$/
    console.log(reg.test('aaa'));//true
    console.log(reg.test(''));//false
    console.log(reg.test('b'));//false

?:表示0次或1次

javascript 复制代码
    const reg = /^a?$/
    console.log(reg.test('aaa'));//false
    console.log(reg.test(''));//true
    console.log(reg.test('b'));//false

{n}表示只能有n次

javascript 复制代码
  const reg = /^a{3}$/
    console.log(reg.test('aaa'));//true
    console.log(reg.test(''));//false
    console.log(reg.test('b'));//false

{n,}表示大于等于n次

javascript 复制代码
 const reg = /^a{3,}$/
    console.log(reg.test('aaa'));//true
    console.log(reg.test('aaaaa'));//true
    console.log(reg.test('b'));//false

{n,m}表示n次到m次

javascript 复制代码
 const reg = /^a{3,10}$/
    console.log(reg.test('aaa'));//true
    console.log(reg.test('aaaaa'));//true
    console.log(reg.test('b'));//false

字符类

\[\]:匹配\[\]中任意一个

javascript 复制代码
  const reg =/[abc]/ //匹配abc中任意一个
    console.log(reg.test('abc'));//true
    console.log(reg.test('andy'));//true

-:表示范围

javascript 复制代码
 const reg =/[a-z]/
    const reg = /[A-Z]/
    const reg = /[0-9]/
    const reg = /[a-zA-Z0-9_]/

^:取反

javascript 复制代码
 const reg =/[^abc]/ //abc之外的任意东西

.:匹配除换行之外的任意字符

javascript 复制代码
    const reg = /./

预定义

javascript 复制代码
 const  reg1 =/\d/ //const reg = /[0-9]/
    const  reg1 =/\D/ //const reg = /[^0-9]/
    const  reg1 =/\w/ //const reg = /[a-zA-Z0-9_]/
    const  reg1 =/\W/ //const reg = /[^a-zA-Z0-9_]/
    const  reg1 =/\s/ //const reg =/[/t/r/n/v/f]/
    const  reg1 =/\S/ //const reg =/[^/t/r/n/v/f]/

分组和捕获

分组

javascript 复制代码
 const reg =/(ab)+/ //ab
    console.log(reg.test('ab'));//true
    console.log(reg.test('abab'));//true

捕获

javascript 复制代码
 //分组捕获
    //例如将yyyy-mm-dd格式换成mm/dd/yy
    const reg = /^(\d{4})-(\d{2})-(\d{2})$/
    const date = '2023-01-05'
    // console.log(reg.test(date));
    console.log(date.replace(reg,'$2/$3/$1'));

vscode中any-rule插件中储存有一些简单常用的正则表达式,合理利用他们能够提升开发效率

相关推荐
biu_biubiu5 分钟前
我开源了 Codebook
前端·vue.js
下山5 分钟前
怎么把带自研插件的 DeepSeek Harness 部署到云服务器
前端
海绵宝宝转agent12 分钟前
Leetcode二叉树算法个人理解
笔记·学习·算法·leetcode·深度优先
彭亚川Allen13 分钟前
985 在职研究生到底怎么样?是不是水硕?是不是.....?
前端·后端·程序员
YufJi15 分钟前
两棵树,两个线程:一个小程序引擎的架构拆解
前端
小oo呆15 分钟前
【学习心得】MCP工具开发学习笔记
笔记·学习
super_Omni25 分钟前
Chrome 插件入驻实战:从 Manifest V3 到过审上架的完整路径
大数据·前端·chrome
kyrie_sakura26 分钟前
大模型学习19 大模型学习 - LangChain2_Retrieval(RAG-文档处理-向量处理检索-Milvus)
学习·langchain·milvus
腾讯数据架构师41 分钟前
任务跑完怎么直接出图表?CubeStudio 任务可视化 ECharts 数据格式实操(CSV/JSON + metric.json,11 种图表一键渲染)
前端·json·echarts·数据可视化
小小小米粒1 小时前
不是在构造方法「之前」修饰 Bean、注入;是构造方法跑完之后,才做属性注入,再跑 @PostConstruct。
前端