正则1:基础概念

1、横向匹配,量词

 

{m, n}前一个字符重复的次数

{m} = {m, m}

出现 m 次

{m,}

出现大于等于 m 次

?

{0,1}

{1,}

*

{0}

 

2、纵向匹配,范围

[abc], [a-c], [1,23],[1-3]

前一个字符的可选

[^abc], [^a-c]

前一个字符的不可选

 

\d

[0-9]

\D

[^0-9]

\w

[a-zA-z0-9_]

\W

[^a-zA-z0-9_]

\s

[ \\t\\v\\n\\r\\f] 空格,水平制表符,垂直制表符,换行符,回车符,换页符

\S

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

.

表示几乎任意字符,除了换行,回车,行分割符,段落分隔符之外

 

 

如何表示任意字符: [\d\D], [\w\W], [\s\S], [^]

 

3、多选分支

使用管道符 “|” 分割的,就是多选分支

例如 p1|p2|p3,表示匹配 p1 或者 p2 或者 p3

这里要特别注意,多选分支也是惰性的,

所以, 'goodbye'.match(/goodbye|bye/)=[‘goodbye']

但是  'goodbye'.match(/(goodbye|bye)/)=[‘goodbye’, ‘goodbye’]

这是为啥?括号的影响是啥

 

 

 

 

 

4、贪婪匹配、惰性匹配、独占模式

贪婪和惰性都是相对于量词的,

默认是贪婪模式,即会尽量匹配量词最大的情况

惰性匹配是在量词后面加个?(ps:注意??这种惰性匹配,其实是相对于?,且尽量 0 个)

独占模式,是在量词后面加个+,效果为取量词最大匹配,并且不回溯,但是我发现一个神奇的现象,和网上说的不一样的是,除了.后面能加+,其他所有的都报语法错误。很是无语。暂时我也用不到,如果有一天需要用到这么复杂的正则的时候再来研究为啥吧

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值