正则表达式

什么是正则表达式?

正则表达式,全称“Regular Expression”,在代码中常简写为regex、regexp或RE。正则表达式,就是用某种模式去匹配一类字符串的公式


如何定义正则表达式方法?

  1. 显示定义 

a.    所谓的显示定义就是看上去就明白是一个正则表达式。显示定义必须使用new关键词定义.

 b.    var  变量名=new RegExp("这里输入正则表达式内容");   正则表达式规则引号引用

2.隐式定义

a.  所谓的隐式定义就是看上去没有明确的正则表达式定义.

b.   var 变量名=/这里写入正则表达式内容/gi

c.   隐式定义是最常用的方式,建议大家以后都使用这种方式定义正则表达式,//间包围正则的规则,/外的g确定正则的匹配规则是全局,i确定正则的部分大小写进行匹配.

显示定义  :var re=new RexExp("[0-9]");

隐式定义: var re=/[0-9]/g

上述两种是等价的匹配0-9的一个数字


正则匹配检验方法

  1. test()方式:

语法:

正则.test(目标字符串)

定义一个正则 var re=/[0-9]/g;

if(re.test('0')){
alert('合法 的数组')}

返回是一个布尔值.常用test()匹配正则是否能够进行匹配.

正则匹配校验网站:正则匹配校验 .右侧有语法参考


常用元字符

元字符

说明

\d

匹配0-9的数字,相当于[0-9]

\D

匹配非数字,相当于[^0-9]

\w

匹配字母或数字或汉字或下划线

\W

匹配不是字母或数字或汉字或下划线的字符

\s

匹配任意的空白符,如空格、换行符、制表符等

\S

匹配非空白符的字符

.

匹配除了换行符以外的任意字符

[....]

匹配空格的字符

[^...]

匹配括号内容之外的字符

举例1:

var re=/\d/;匹配任意的0-9的任意一个数字

举例2:

var re=/[0-9]/;匹配0-9的任意数字
var re=/[a-z]/;匹配a-z的任意小写字母

匹配3:

var re=/[^a-z]/;匹配a-z之外的任意字符

   常用连接符

连接符

说明

[0-9]

匹配数字,等价于\d

[a-z]

匹配英文小写字母

[A-Z]

匹配英文大写字母

[0-9A-Za-z]

匹配数字或英文字母

[0-9]匹配0,1,2,3,4,5,6,7,8,9;[a-z]匹配a-z的任意小写字母

限定符

什么是限定符?

限定符,就是限定某个或某类字符出现的次数

限定符

说明

+

重复1次或更多次

*

重复0次或更多次(任意次数)

?

重复0次或1次

{n}

重复n次

{n,m}

重复n次到m次(最少n次)

{n,}

重复n次或更多次(最少n次)

举例1:

var re=/[0-9]{3}/匹配3个0-9的数字
var re=/[0-9]+/匹配0-9最少一个多则不限

定位符

定位符

说明

^

定位开始位置字符

$

定位结束位置字符

\b

定位单词(汉字)边界的字符

\B

限定非单词(字)边界的字符

举例1:

var re=/ok\b/  匹配ok结尾的,可以匹配imok ok拉  哇ok拉 但是不匹配okk imokk  \b是匹配单词或者汉字边界

举例2:

var re=/ok\B/  匹配单词或者汉字边界不是ok的字符,不匹配imok ha 可以匹配ABCoka  和用法相反,不匹配

^说明:^出现在开始是标准匹配的开始;出现在[^...]的^表示不匹配方括号内的字符起否定作用.

举例3:

var re=/^[A]/  表示匹配开头的一个字符是大写A
var re=/[^A]/  表示匹配不是A的字符

转义字符

正则表达中出现两种字符:①普通字符;②特殊字符如(^,${})等

当我们需要匹配这些特殊字符就需要用到转义,

举例:(当我们需要匹配$abc这个字符串)

var re=/\$abc/ 在需要转义的字符前加斜线(\),匹配双反斜线 \\

需要转移的特殊字符:$、(、)、*、+、.、[、]、?、、/、^、{、}、|

分组符

正则表达式中使用()进行分组.

举例:

①/(abc){2}/
②/[abc]{2}/
③/(a[h-n]){2}/

解释:①(abc)为一组表示匹配abcabc

        ②表示a,b,c其中任意的一个字符匹配两次

        ③表示ah-an为一组,且这个组重复2次

选择符

什么是选择符?

        选择符,很简单。在正则表达式中,选择符是“|”,用于选择匹配2个选项之中的任意一个,类似JavaScript中的“或”运算.

举例:

var re=/[a|b|c|d]/表示匹配a,b,c,d的任意一个字符

正则注释

什么是正则注释?

        注释在之前很熟悉了,正则注释也一样帮助我们更好的去理解正则添加的标注内容

(?#这里是注释部分)

说明:如果要在正则表达式中包含注释,则最好打开“忽略模式里的空白符”选项。因此,此时可以在注释中添加空格、换行符号、制表符号等。一旦启用了该选项,即符号#之后的内容会全部被忽略掉。

正则表达式优先级

什么是优先级?

        在之前学习的php,JavaScript,c等语言的运算符部分出现了运算符的优先级定义了运算符的运算顺序,这里正则也有专属 的优先级.

运算符或表达式

说明

\

转义字符

()、(?:)、(?=)、[]

圆括号或方括号

*、+、?、{n}、{n,}、{n,m}

限定符,定义规则的量

^、$、、B

定界符,位置边界

|

选择符,或计算

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端布道

JavaScript之正则表达式

正则表达式 (regular expression) 描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某...

29560
来自专栏coder修行路

go 从入门到精通(二)基本数据类型和操作符

一、文件名&关键字&标识符 所有go源码都是以.go结尾 标识符以字母或下划线开头,大小写敏感 下划线_是特殊标识符,用户忽略结果 保留关键字 导入包时可以设置...

20490
来自专栏cs

xml基本知识点

xml, Extensible Markup Language,可扩展的标记语言。 ? xml文档结构.jpg xml文档的规则 1.0 xml文档必须以一个...

35150
来自专栏日常学python

深入理解python中的类和对象

刚开始学习python的时候或者其他的是面向对象的编程语言的时候,难免会对类和对象理解得不太清楚。所以今天和大家分享下python中的类和对象,深入理解下pyt...

11600
来自专栏Spring相关

带返回值的函数,闭包,沙箱,递归详解

那了解了函数 this 指向的不同场景之后,我们知道有些情况下我们为了使用某种特定环境的 this 引用, 这时候时候我们就需要采用一些特殊手段来处理了,例如...

7620
来自专栏软件开发 -- 分享 互助 成长

C++初始化列表

一、什么是初始化列表 与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段 二、...

22890
来自专栏aCloudDeveloper

C++基础题

刚在网上转看到几道对于巩固基础很有帮助的C++基础题,反正闲着也是闲着,就做了下,具体题型如下: 答案是我自己写,不一定对,如果有朋友看到不对的,欢迎指正,万分...

22650
来自专栏Laoqi's Linux运维专列

python3–函数

62850
来自专栏老司机的技术博客

golang学习笔记4:基本类型和运算符

布尔型的值只可以是常量 true 或者 false。一个简单的例子: var b bool = true 。两个类型相同的值可以使用相等 == 或者不等 != ...

30930
来自专栏飞雪无情的博客

Go语言实战笔记(四)| Go 数组

数组,是用来存储集合数据的,这种场景非常多,我们编码的过程中,都少不了要读取或者存储数据。当然除了数组之外,我们还有切片、Map映射等数据结构可以帮我们存储数据...

11530

扫码关注云+社区

领取腾讯云代金券