工作一年了,正则表达式你真的必须会 ---- 第三篇 量词

前面第一第二篇我们学习了括号和云字符都是匹配单个位的,本章我们学习如果多位匹配--量词。

量词表

量词表1

量词对应的{}描述
n+{1,+∞}匹配任何包含至少一个 n 的字符串。
n*{0,+∞}匹配任何包含零个或多个 n 的字符串。
n?{0,1}匹配任何包含零个或一个 n 的字符串。
n{X}{X}匹配包含 X 个 n 的序列的字符串。
n{X,Y}{X,Y}匹配包含 X 至 Y 个 n 的序列的字符串。
n{X,}{X,+∞}匹配包含至少 X 个 n 的序列的字符串。

除了上面这些量词之前,在W3C里面也把下面这几个收纳到了量词表里面

量词表2

量词 描述
n$ 匹配任何结尾为 n 的字符串。
^n 匹配任何开头为 n 的字符串。
?=n 匹配任何其后紧接指定字符串 n 的字符串。
?!n 匹配任何其后没有紧接指定字符串 n 的字符串。

练习

题目1:把下面的字符串"abbbbabbbbabb"切成5位5位的,剩余的不够5位的就按照4或者3位切开

const reg = /\w{3,5}/g

const str = 'abbbbabbbbabb'

str.match(reg) //  ["abbbb", "abbbb", "abb"]

解析: 此处体现除了正则表达式的贪婪匹配原则

题目2:看题猜结果

const reg = /^abc$/

const str = 'abcabc'

str.match(reg) // 打印出什么呢

解析:这里应该是打印出['abcabc']还是['abc']呢还是其它答案呢? 去掉我们的刚学的“^”(以什么开头)和“$”(以什么结尾)

const reg = /abc/

const str = 'abcabc'

str.match(reg) // ['abc','abc']

这里加上了^和$意思是说:匹配出来的字符串它的a在这整个被匹配的串中是开头,它的c在整个串中是在结尾的位置,因此可以知道上面的答案的是null

const reg = /^abc$/

const str = 'abcabc'

str.match(reg) // null

题目3: 写一个正则表达式,检验字符串首尾是否有字符串(只要首或者尾有就行)

提示:单竖线“|”可以表示“或”


const reg = /^\d|\d$/g

const str = '123abc'

reg.test(str) // true

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值