正则表达式(RegExp对象)

前言

在编程学习的道路上正则表达式的运用是非常的方便,让我们在匹配字符串,数据等方面有很大的帮助,今天给大家分享一些关于正则表达式的知识!

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

一.基础知识

正则语法:
一.字符类
1.点
.点:匹配任何字符不包括换行
2.字母,数字,下划线,空白的匹配与非匹配
\w: 匹配字母,数字,下划线 \W: 匹配非字母,数字,下划线
\d: 匹配任意数字(0-9) \D: 匹配任意非数字字符
\s: 匹配任何空白字符 \S: 匹配任何非空白字符

注意:(匹配其中任意一个)注意禁用全局标识的时候,RegExr会为了避免无穷个匹配结果而只返回第一个结果

3.字符集
[ABC]:匹配集合中的任何字符

4.范围
[A-Z] 匹配ASCII码在指定范围区间字符
[0-9]匹配0-9范围内的数字

5.完全通配
[\s\S]:可以用来匹配所有字符,包括换行符,
另外一种形式是[^], 但是它不被所有浏览器支持

二.多选和量词
(1)多选
*匹配0个或n个前面的标记
+匹配1个或n个前面的标记。
?匹配0个或1个前面的标记
| 多选:匹配|前面的或后面的表达式。(类似于js中||运算符)
(2)量词
匹配指定数量个前面的标
{1,3} 会匹配1个到3个
{3} 会匹配正好3个
{3,} 会匹配3个或更多

三.括号匹配
()通常一个括号里的内容为一个整体
例如:(abc)* 是匹配0个或n个abc整体
abc* 里*只作用与c一个字符,而不是整体

四.正则表达默认是贪婪匹配,会尽量多的匹配
解决方案: ? 让其尽可能少地匹配字符
例如:a good boy and a good girl

/a.*a/ 会匹配到 a good boy and a 是贪婪的

/a.*?a/ 会匹配到 a good boy a 会尽可能少的匹配

五.匹配开头与结尾
^ 匹配一行的开头 这个会匹配到位置,而不是字符。
$ 匹配字符串结尾 这个会匹配到位置,而不是字符。

二.部分代码示例

注意:当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 \)

(1)构造一个正则对象

var re=new RegExp("\\wjw")
var re2=/\wjw/
console.log(re);// 结果:\wjw\
console.log(re2);//结果:\wjw\   re和re2是等价的

(2)三种匹配方式

//三种匹配方式 i
//1.大小写不敏感的匹配 i
let str1="WJw hhJIAwei"
let str1_match=str1.match(/hhjiawei/i)
console.log(str1_match);

//2.全局匹配 g   
var str2="Is this all there is?";
var str2_match=str2.match(/is/g)
console.log();//注意:join方法将正则匹配的数组以字符串形式展现

//3.执行多行匹配 m        m 修饰符可以使 ^ 和 $ 匹配一段文本中每行的开始和结束位置。
//  g 只匹配第一行,添加 m 之后实现多行。
var str3="wjwhhhlaikegoogle\nwjwbao\nwjibo";
var str3_match1=str3.match(/^wjw/g);   // 匹配一个
var str3_match2=str3.match(/^wjw/gm);  // 多行匹配
console.log(str3_match1);
console.log(str3_match2);
输出结果:
第一行输出为str1_match
第二行输出为str2_match
第三行输出为str3_match1
第四行输出为str3_match2

在这里插入图片描述
(3)查找方括号之间的任何字符[abc]

var str4="Is this all there is?";
var str4_match=str4.match(/[asie]/g);//采用了全局匹配
console.log(str4_match);

输出结果
在这里插入图片描述
(4)查找不在方括号之间的任何字符[^abc]

var str5="Is this all there is?";
var str5_match=str5.match(/[^asie]/g);
console.log(str5_match);

输出结果:
在这里插入图片描述

结语:由于匹配语法知识很多种,就不一 一举例了,大家可以像我这样在编辑器中根据语法练习,在实践中学会正则表达式。

注意:上述的基础知识只是正则表达常用的,不代表所有知识,但是博主推荐正则学习至少掌握我给大家列的这些知识!想要学习正则表达其他更全面的知识,给大家推荐一个很学习正则表达式的网站:
https://regexr-cn.com/
基本能满足你的所有正则知识学习需求

希望今天分享的内容对大家有所帮助!!!!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值