分享人:陈占乐
目录
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
编程中经常用到字符串的操作,对于字符串的匹配、查找符合某些规则的字符串。示例如下:
1 快速分析大量文本,以找到特定的字符模式
2 验证文本以确保它匹配预定义模式
3 提取、编辑、替换或删除文本子字符串。
正则表达式-regular expression并不是一种编程语言,而是一种规则-查找符合某些复杂规则的字符串,即正则表达式是记录文本规则的字符串。
1 简单模式/特定模式
正则表达式支持的字符编码范围非常大,也支持中文查找。
简单模式直接使用字符编码中特定的编码或者特定的多个编码。
单个字符:数字、字母大小写、符号
字符 | 特定 | 元字符 |
---|---|---|
数字 | 0-9 | \d |
字母 | a-zA-Z | \w |
符号 | . * | \s |
符号在正则表达式中含有特殊含义,匹配符号本身需要转义\
我所说的通用模式指符合一定规则,适用范围更广的正则表达式。
主要有3个细分规则:
1 字符single char
2 数量quantifier
3 位置position
字符范围[]
元字符 | 范围 | 取反 |
---|---|---|
\d | [0-9] | \D[^0-9] |
\w(word) | [A-Za-z_0-9] | \W |
\s | white space (空格、制表符、换行) | \S |
. | 除换行符以外的任意字符 |
数量用{}表示
数量 | 等效符号 |
---|---|
{n} | n次 |
{m,n} | m-n之间 |
{0,1} | ? |
{0,} | * |
{1,} | + |
起始和边界
^ | 开头 |
$ | 结尾 |
\b | 单词边界 |
| | 或 |
正则表达式还有提取子串的强大功能,用()表示的就是要提取的分组(Group)
如何选择已经匹配的分组?
两种方法,第一种使用$符号,比如$1 代表555,$2代表1234;第二种,使用\,比如\1代表555。
g:全部;i:忽略大小写;m:多行匹配
RegExp 的 exec 和 test 方法
String 的 match、replace、search 和 split 方法
分类 | 布尔 | 匹配 | 分组 |
---|---|---|---|
RegExp | test() | exec() | |
String | search() | match() | replace() split() |
什么情况下使用正则表达式
查找、验证、转义
参考一 MDN正则表达式
参考二 廖雪峰正则表达式
参考三 掘金文章
感谢大家观看
BY : 陈占乐