正则表达式在javaSript中的使用

javascript中正则表达式的使用

1.正则表达式的组成

1.普通字符,或者称为直接量字符

如字母A、B,数字1,2等
a b  c         任何一个字符都可以作为正则表达式的字符
[abcd]          表示一个字符 a或者b或者c或者d
[a-z]          表示所有的小写字母
[A-Z]         表示所有的大写字母
[h-m]         表示h到m之间的所有小写字母
[^abc]       表示除了abc之外的所有字符
[0-9]          表示所有的阿拉伯数字
[a-zA-Z_0-9]   表示单词字符[小写字母  大写字母,_,阿拉伯数字]     
[a-gm-z]

2.限定符/数量词(数量词用在字符的后面,用来定义这个字符的个数)

 ?表示相关的模式出现零次或一次
*表示相关的模式出现零次或多次
 +表示相关的模式出现一次或多次   
{n} 表示相关的模式出现n次
 {n,m} 表示相关的模式出现n到m次
 {n,}表示相关的模式至少出现n,最多至无限多次

3.常用元字符串 预定义字符

\d	匹配数字  
\D	匹配任意非数字的字符
\w	匹配字母或数字或下划线
\W	匹配任意不是字母,数字,下划线
\s	匹配任意的空白符
\S	匹配任意不是空白符的字符

.	匹配除换行符以外的任意单个字符
^	表示匹配行首的文本(以谁开始)
$	表示匹配行尾的文本(以谁结束)

4.边界词

 ^   行开头
$   行结尾
\b  单词边界

5.修饰词
g 全局匹配,默认情况下,正则表达式只匹配一次
全局匹配会将所有符合要求的内容匹配出来

i  忽略大小写

语法格式:/正则/gi
    <script>
        let str="hello World,Hello china,HELLO Newer";
        //定义正则表达式
        let regex = /Hello/ig;
        let s = str.match(regex);
        console.log(s);

    </script>

6.分组及分组的捕获

案例:ac abbbbc  addddddc  aeeeeeeeec a********c 

通过正则表达式匹配以上的格式

使用()对正则表达式分组
整个表达式默认是一个分组,下标默认是0
每一个分组都有一个默认的下标
下标是从0开始的连续的整数
由于一般情况下,整个表达式分组的括号是不写的,所以一般我们看到的第一个括号就是第二组,下标为1

通过下标可以捕获分组
捕获方式: \下标

A(B(CD))    下标是0
(B(CD))     下标是1
(CD)        下标是2
((ab)(cd))   同级情况下从左到右
2.数量词的使用

数量词用在字符的后面,用来定义这个字符的个数

?表示相关的模式出现零次或一次
*表示相关的模式出现零次或多次
 +表示相关的模式出现一次或多次   
{n} 表示相关的模式出现n次
 {n,m} 表示相关的模式出现n到m次
 {n,}表示相关的模式至少出现n,最多至无限多次
3.贪婪性数量词和懒惰性数量词

JavaScript中默认是贪婪性的数量
java中在数量词后用+表示贪婪性

懒惰性数量词
{3,}? 数量是3次及以上,但尽可能少
{3,10}? 数量是3到10次,但尽可能少
?? 数量是0次或1次,但尽可能少
*? 数量是0次或多次,但尽可能少
+? 数量是1次或多次,但尽可能少

4.边界词的使用

^ 行开头
$ 行结尾
\b 单词边界

输出结果为 0: “hello”
1: “Hello”
2: “HELLO”

5.分组及分组的捕获
6.断言的使用

(?<=exp)regex 匹配一个正则表达式,左边必须满足断言条件
regex(?=exp) 匹配一个正则表达式,右边必须满足断言条件

可以在断言中加!
(?<!exp)regex 匹配一个正则表达式,左边必须不满足断言条件
regex(?!exp) 匹配一个正则表达式,右边必须不满足断言条件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值