美文网首页
正则表达式

正则表达式

作者: 写前端的大叔 | 来源:发表于2019-11-27 23:14 被阅读0次

最近在看jquery的源码,里面包含了很多正则表达式,特意抽时间来整理下正则表达式相关知识。

简介

正则表达式是一种根据某种特定规则来检测或替换那些符号的文本,可以通过简单的办法来实现强大的功能。在编程开发和平常的计算机使用过程中都很常见,比表单验证、文件搜索、字符查找与替换等,都可以通过简单的正则表达式来实现复杂的功能,提升效率。

正则字符介绍

正则表达式的表现主要是通过字符来构造规则。以下表格包含了所有元字符:

字符 描述
\f 匹配一个换页符
\n 匹配一个换行符
\r 匹配一个回车符
\s 匹配一个空白符
\S 匹配一个非空白符
\t 匹配一个制表符
\v 匹配一个垂直制表符
^ 匹配输入字符的开始位置,如果是在[]中,表示不包括该字符,如果要表示^本身,需要在前面加上\
$ 串结尾为指定字或者匹配行,比如b$,是以b结尾的字符串
\ 将\后面的字符标记为特殊字符
* 表示前面的子表达式出现0次或者多次
+ 表示前面的子表达式或字符出现1次或者多次
表示前面的子表达式或字符出现0次或者1次 。当出现在限定符(*, +, ?, {n}, {n,}, {n,m})后面时,表示尽可能少的匹配字符,如果没有?将默认为贪婪模式 ,将尽可能多的进行匹配
{n} 表示前面的子表达式或字符重复出现n次
{n,} 表示前面的子表达式或字符至少出现n次
{n,m} 表示前面的子表达式或字符至少出现n次,最多出现m次
. 匹配除换行符(\n,\r)以外的所有字符
\b 匹配字符边界,就是指字符和空格之间。比如‘a b c’,用\bb\b匹配字符b
\B 匹配非字符边界 ,比如‘a b c’,用\bb\b匹配时将无法 匹配到
\d 匹配数字字符
\D 匹配非数字字符
\w 匹配字母、数字、下划线
\W 匹配非字母、数字、下划线
{ 标记限定符表达式的开始
| 指明两项之间的一个选择
[] 字符集合。匹配所包含的任意一个字符
[^] 负值字符集合。匹配未包含的任意字符。
[a-z] 限定一个范围,匹配范围内的,如a-z表示所有小写字母
[^a-z] 负值字符范围。匹配任何不在指定范围内的任意字符。
( ) 表示一个子表达式的开始和结束,用于分组
(?:x) 匹配x,但不记住x的匹配项,意思就是用$1获取不到的。
x(?=y) 匹配x,但只有x后面跟着y时才能匹配到 ,如‘xyz’,能匹配到x
x(?!y) 匹配x,但后面不跟着y时才匹配 ,如‘xyz’,不能匹配到x
(?<=y)x 匹配x,前面是y时才匹配 ,如‘yxz,能匹配到x
(?<!y)x 匹配x,前面不是y时才匹配 ,如‘y1xz’,能匹配到x

更详细的参考MDN字符介绍

正则表达式标志

正则表达式有几个可选参数进行全局和不分大小写搜索,这些参数可以单独使用,也可以一起使用。

标志 描述
g 全局搜索
i 不区分大小写搜索
m 多行搜索
s 允许.匹配换行符
u 使用unicode码的模式进行匹配
y 执行“粘性”搜索,匹配从目标字符串的当前位置开始,可以使用y标志

JS中使用正则表达式

在JS中经常会用到正则表达式,用的最多的就是表单验证和字符串替换。

创建正则表达式

创建正则表达式有两种方法:

1.字面量表示法

元字符包含在斜杠之间,如下所示:

var reg = /\d/g;

1.RegExp

调用RegExp的构造函数来创建对象,如下所示:

var reg = new RegExp("\\d",'g');

正则表达式常用方法

使用正则表达式方法的对象主要是RegExpString,RegExp主要包括 exec,test方法,String包括matchreplacesearchsplit方法。具体用法如下所示:

方法 描述
exec 根据正则表达式对字符串进行匹配,如果能匹配到就返回一个数组,没匹配到就返回null
test 根据正则表达式对字符串进行匹配,如果能匹配到就返回true,没匹配到就返回false
match 字符串执行该方法,将匹配到的字符全部添加到数组中,如果没匹配到,就返回null
matchAll 字符串执行该方法,匹配结果是返回一个迭代器
replace 替换匹配到的字符
search 返回匹配到的索引位置
split 根据匹配结果,将字符串进行分组

当碰到复杂,难以理解的正则表达式时,使用下面的两个地址可以轻松的理解复杂的正则表达式
正则表达式流程图
正则表达式验证

个人博客

相关文章

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • Python基础入门 - 正则表达式与综合实战

    1. 初识正则表达式 1.1 介绍 步骤介绍正则表达式入门及应用正则表达式的进阶正则表达式案例 1.2 正则表达式...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • 正则表达式

    了解正则表达式基本语法 能够使用JavaScript的正则对象 正则表达式简介 什么是正则表达式 正则表达式:用于...

网友评论

      本文标题:正则表达式

      本文链接:https://www.haomeiwen.com/subject/joirwctx.html