首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

正则回顾总结

一、简介

1.1 正则表达式的web常见场合

邮箱验证

用户名验证

替换字符串某一部分

信息采集 用来分析有效的代码段

1.2 字符串应用正则

string.match(reg)

正则查找字符串

string.search(reg)

正则查找位置

string.replace(reg,'newstr')

正则替换

string.split(reg)

正则拆分

1.3 正则表达式3句话

1.3.1 要找什么字符?(5种方法)

字面值 比如:

hi

就是找

hi

字符的集合

[abcd]

匹配

abdc

任意一个

用范围来表示字符

[0-9] [a-z][A-Z]

字符簇 就是系统为常用的字符集合创建的一个简写

例如:

\d

表示

[0-9]

\w

代表

[0-9a-zA-Z_]

\s

代表

[\t\v\f\r\n]

(空白符)

补集的形式来表示字符集合

例如:

[0-9]

补集

[^0-9]

对于字符簇只需把字母大写即可表示补集

\d

\D

(非数字)

\w

\W

(代表

a-z0-9A-Z

之外的东西)

\s

\S

(代表非空白字符)

点代表 任意字符 (不包括换行符)

1.3.2 从哪里找,找到哪?

\b

单词边界

\bhi

从单词边界开始匹配

hi

\B

单词的非边界 把单词的中间某一部分取出来 把中间含有hi的单词取出来 即

hi

不能再两端

^

从字符串的起始位置开始匹配

$

匹配到字符串的额结束位置

1.3.3 找多少

*

表示匹配

0-

无穷

==

等价

(0,)

+

表示匹配

1-

无穷

==

等价

(1,)

?

表示

[0,1] ==

等价

(0,1)

a(n)

: 字符a准确出

现n

a(n,)

:字符

a

至少出现

n

a(n,m):n

m

1.4 贪婪模式

个数修饰符默认是贪婪模式 尽量多找

是指在上面的个数修饰符后面加

?

,则为非贪婪模式,尽量少的找

模式

以匹配为例默认情况 match找到一次就结束 能否告诉匹配过程 一直找 在全文范围内一直找

g

表示全局模式 global 找所有的 而不是就找一行就结束

i

ignore 忽略大小写

s

单行模式(把整篇文章看成一行)js不支持单行模式

m

多行模式

二、语法

2.1 基本元字符

.

: 匹配除了换行符之外的任何单个字符

\

: 在非特殊字符之前的反斜杠表示下一个字符是特殊的

|

: 逻辑或操作符

[]

:定义一个字符集合,匹配字符集合中的一个字符,在字符集合里面像

.

,\这些字符都表示其本身

[^]

:对上面一个集合取非

-

:定义一个区间,例如

[A-Z]

,其首尾字符在

ASCII

字符集里面

2.2 数量元字符

:匹配前面一个字符至少

m

次至多

n

次重复,还有

表示匹配

m

次,

表示至少

m

+

: 匹配前面一个表达式一次或者多次,相当于

,记忆方式追加

(+)

,起码得有一次

*

: 匹配前面一个表达式零次或者多次,相当于

,记忆方式乘法

(*)

,可以一次都没有

?

: 单独使用匹配前面一个表达式零次或者一次,相当于

2.3 位置元字符

^

: 单独使用匹配表达式的开始

\$

: 匹配表达式的结束

\b

:匹配单词边界

\B

:匹配非单词边界

(?=p)

:匹配

p

前面的位置

(?!p)

:匹配不是

p

前面的位置

2.4 特殊元字符

\d

[0-9]

,表示一位数字,记忆方式 digit

\D

[^0-9]

,表示一位非数字

\s

[\t\v\n\r\f]

,表示空白符,包括空格,水平制表符(\t),垂直制表符(\v),换行符(\n),回车符(\r),换页符(\f),记忆方式 space character

\S

[^\t\v\n\r\f]

,表示非空白符

\w

[0-9a-zA-Z]

,表示数字大小写字母和下划线,记忆方式 word

\W

[^0-9a-zA-Z]

,表示非单词字符

2.5 标志字符

g

: 全局搜索 记忆方式global

i

:不区分大小写 记忆方式 ignore

m

:多行搜索

三、match,test,exec,search的返回值

3.1 match的用法

在不加全局“g”的情况下

var str="wo shi zhong guo ren";console.log(str.match(/o/));// 返回的结果是:["o", index: 1, input: "wo shi zhong guo ren"];

在加全局“g”的情况下

var str="wo shi zhong guo ren";console.log(str.match(/o/g)); 返回的结果是:["o", "o", "o"];

3.2 exec的用法

var str="wo shi zhong guo ren";var re=/o/;console.log(re.exec(str));// 返回的结果是:["o", index: 1, input: "wo shi zhong guo ren"];// exec返回的和match不加全局“g”’一样

3.3 test的用法

var str="wo shi zhong guo ren";var re=/o/;console.log(re.test(str));// 返回的结果是:true(如果找不到返回的则是false)

3.4 search的用法

关于search用法其实很简单,它和indexOf是一样的,就是找到index,而且是从前往后数的。

var str="wo shi zhong guo ren";var re=/o/;console.log(str.search(re)); 返回的结果是:1;

四、应用

4.1 例1

在线演示 https://codepen.io/poetries/pen/xWMRxR

正则-例子1

4.2 例2-要找什么字符串

在线演示 https://codepen.io/poetries/pen/oqmYNw

要找什么字符

4.3 例3-从哪里开始匹配

在线演示 https://codepen.io/poetries/pen/jzdVOo

74-从哪里开始匹配

4.4 例4 正则应用字符串

在线演示 https://codepen.io/poetries/pen/dmaOPz

正则应用字符串

4.5 例5-预查

在线演示 https://codepen.io/poetries/pen/MVLbwW

预查

4.6 例6-反向引用

在线演示 https://codepen.io/poetries/pen/LdqbVL

反向引用

4.7 例7-正则练习

在线演示 https://codepen.io/poetries/pen/dmaOYV

正则练习

4.8 例8-常用正则

在线演示 https://codepen.io/poetries/pen/GxzNoG

常用正则解答

五、总结

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190624A0QZN100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券