正则表达式

本文深入探讨了正则表达式的使用,包括全局搜索、忽略大小写、构造类、边界匹配、量词以及反向引用等。通过实例展示了如何在字符串中进行查找、替换操作,并介绍了前瞻和反向前瞻的概念。对于编程人员来说,掌握这些技巧能有效提升文本处理能力。
摘要由CSDN通过智能技术生成

**

正则表达式

**

{let reg = /\bis\b/g;
// \b匹配单词边界
let str = "he is a boy . this is a dog . where is she ?";
console.log(str.replace(reg,"IS"));
}

g:global全文搜索 i:ignore case 忽略大小写 m:multiple lines 多行搜索,搜索时识别大小写

{
    let str = "he is a boy , Is he?";
    console.log(str.replace(/\bis\b/gi,"0"));
}

[]构造类 [abc]a、b、c中任何一个 [^abc] ^在[]中是取反,除了a、b、c [a-z]a到z中任意一个字符

{
let str = "abakkavac22-522"
console.log(str.replace(/[abc]/g,"x"));
console.log(str.replace(/[^abc]/g,"x"));
console.log(str.replace(/[a-z]/g,"x"));//a到z中任意一个字符
console.log(str.replace(/[a-zA-Z0-9]/g,"x")); //0-9 a-z A-z中任意一个
console.log(str.replace(/[0-9-]/g,"x"));//0-9中任意一个或-
}

边界;
^ 以xxx开始
$ 以xx结束
\b 单词边界
\D 非单词边界

{
    let str=`@123
    @456
    @789`
    console.log(str.replace(/^@\d/g,"x"));
    console.log(str.replace(/^@\d/gm,"x"));
    }

量词
“?” 出现0次或1次
“+” 出现1次或多次
"* "出现0次或多次
"* {n}"出现n次
{n,m} 出现n-m次
{n,} 出现n次或更多

{
console.log("12345678".replace(/\d{3,6}/g,"x")) //贪婪模式 把出现6个数字的替换为x
console.log("12345678".replace(/\d{3,6}?/g,"x"))//加?非贪婪模式  把出现3个数字的替换为x
    }

反向引用 使用$n的形式 n从1开始
忽略分组 ?:
代码片.

{
    console.log("2020-03-04".replace(/(\d{4})-(\d{2})-(\d{2})/g,"$2/$3/$1"));
    console.log("2020-03-04".replace(/(\d{4})-(\d{2})-(?:\d{2})/g,"$2/$3/$1"));
    console.log("2020-03-04".replace(/(\d{4})-(?:\d{2})-(\d{2})/g,"$2/$3/$1"));
}

前瞻
正向 export(?=assert)
反向 export(?!=assert)
表达式\w(?=\d)表示匹配到一个单词\w时还需向后判断是否为一个数字

{
    console.log("a2*34v8".replace(/\w(?=\d)/g,"x"));
    console.log("a2*34v8".replace(/\w(?!=\d)/g,"x"));
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值