如何使用正则表达式

什么是正则表达式

百度定义: 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

简单的说就是对字符串的一种匹配规则

举个栗子:当我们在各大网站登录的时候都会需要输入手机号,如果输入的不是手机号就会报错,那么怎么知道是不是手机号呢,就是通过了正则表达式的匹配来区分的。

如何使用正则表达式

在介绍如何使用之前,首先来推荐一个学习工具,https://regexr.com/
这个网址可以练习正则表达式的使用。

正则表达式的语法:
  1. . (点,可能看不太清)这个是通配符
    可以作为任意字符,比如正则表达式为:李 . 则可以匹配到李四,李五等
  2. \w 匹配所有的阿拉伯数字、英文大小写字母和下划线,\W(大写W)匹配被 \w排除在外的字符
  3. \d只匹配数字,\D 是匹配所有不是数字的范围
  4. \s 匹配空白字符:空格、制表符、断行等 ,\S\s 的补集
  5. [ ] 在内部是一个范围,对外部表示一个字符,比如[abc] 可以匹配到字符串中所有的单个a单个b单个c,也可以使用[a-z]来表示a到z的所有字母,大写字母和数字和中文都可以来划定范围
  6. + 表示重复出现一次或多次,比如**a+**可以匹配到aa,aaa,aaaaa
  7. * 表示重复出现零次或多次,例如 a+[ !~. ]* 可以匹配到aaaa也可以匹配到aaaa!,或者aaaa~
  8. 表示重复出现零次或一次,
  9. { } 表示指定重复范围,例如 ab{1,5} 就是重复1到5次,会精确匹配到abbbbb
    但是像abbbbbb有6个b就匹配不到。如果不限后面有多少个可以是写成 **{2,}**表示从第二个开始重复无数个都可以被匹配到
    另外可以看出其实之前的 ?+* 其实都是 { } 的一个简写,比如?就是{0,1}的简写
    +是{1,}的简写,*是 {0,}的简写。
  10. () 表示分组,小括号内的值可以被分为一组,分组的值可以被 $组号 取出 比如 (abc)def 则可以用 $1取去abc。

tips:

  1. \ 是转义字符如果想输入 . 则需要输入 \. 来表示。
  2. 还有一点中文如何来表示,是使用Unicode来表示可以在范围中使用,例如匹配所有中国字可以使用[\u4e00-\u9fa5]

扩充!
^ 表示正则表达式开始的位置
$ 表示正则表达式结束的位置
/i (忽略大小写)
/g (全文查找出现的所有匹配字符)
/m (多行查找)
/gi(全文查找、忽略大小写)
/ig(全文查找、忽略大小写)

另外附上js中正则表达式的使用方法地址一份!!!!
https://blog.csdn.net/liusaint1992/article/details/73135814

好了这就是正则表达式的全部内容,希望这些可以帮助到大家!

(小声比比:整篇文章纯手打,而且涉及到好多转义字符,要是写的东西能帮到大家,请大家给我点个赞吧!谢谢啦)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值