【JS-task5】 如何使用正则表达式?

分享人:陈占乐

目录

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

编程中经常用到字符串的操作,对于字符串的匹配、查找符合某些规则的字符串。示例如下:

1 快速分析大量文本,以找到特定的字符模式

2 验证文本以确保它匹配预定义模式

3 提取、编辑、替换或删除文本子字符串。

正则表达式-regular expression并不是一种编程语言,而是一种规则-查找符合某些复杂规则的字符串,即正则表达式是记录文本规则的字符串。

2.知识剖析

正则表达式规则

1 简单模式/特定模式

正则表达式支持的字符编码范围非常大,也支持中文查找。

简单模式直接使用字符编码中特定的编码或者特定的多个编码。

单个字符:数字、字母大小写、符号

字符 特定 元字符
数字 0-9 \d
字母 a-zA-Z \w
符号 . * \s

符号在正则表达式中含有特殊含义,匹配符号本身需要转义\

2 通用模式

我所说的通用模式指符合一定规则,适用范围更广的正则表达式。

主要有3个细分规则:
1 字符single char
2 数量quantifier
3 位置position

1 字符

字符范围[]

元字符 范围 取反
\d [0-9] \D[^0-9]
\w(word) [A-Za-z_0-9] \W
\s white space (空格、制表符、换行) \S
. 除换行符以外的任意字符

2 数量

数量用{}表示

数量 等效符号
{n} n次
{m,n} m-n之间
{0,1} ?
{0,} *
{1,} +

3 位置

起始和边界

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

4 分组

正则表达式还有提取子串的强大功能,用()表示的就是要提取的分组(Group)

如何选择已经匹配的分组?

两种方法,第一种使用$符号,比如$1 代表555,$2代表1234;第二种,使用\,比如\1代表555。

5 flag

g:全部;i:忽略大小写;m:多行匹配

正则表达式方法

RegExp 的 exec 和 test 方法

String 的 match、replace、search 和 split 方法

分类 布尔 匹配 分组
RegExp test() exec()
String search() match() replace() split()

3.常见问题

什么情况下使用正则表达式

4.解决方案

查找、验证、转义

5.编码实战

demo

6.扩展思考

7.参考文献

参考一  MDN正则表达式

参考二  廖雪峰正则表达式

参考三  掘金文章

8.更多讨论

鸣谢

感谢大家观看

BY : 陈占乐