JavaScript-正则表达式

话题突然一指,什么是正则表达式呢?为什么咱们需要学习正则表达式的书写呢?学习这个有什么用,能帮助我们解决什么问题?带着疑问,咱们一块来看看“正则表达式”;

什么是正则表达式?

规定了一个字符串中字符出现规律的规则。

为什么需要学习正则表达式?

主要是当我们输入的关键词有多种变化的时候,(1)按照规则模糊查找多种关键词(2)用规则验证用户输入的格式


正则表达式其实是由字符集和量词,根据选择和分组操作,设计出来的一种规则,然后发挥它的作用


那么什么是字符集呢?

字符集WhatWhen强调
标准符集规定一位字符的规则只要一位字符,但是有多个备选字时一个字符集只能匹配一个字符
预定义字符集简化的几种规则不限无 
  1. 标准字符集
    1. [0-9]、[a-z]、[A-Z]、[A-Za-z0-9]、[\u4e00-\u9fa5]
  2. 预定义字符集
\d\w\s.
[0-9][A-Za-z0-9_]空格、制表符通配符(*和?)

那么什么是量词呢?

上文中,我们明显可以做到基本的限制规则,但是有些时候需要判断我们输入字符集的出现“次数”,那么此时“量词”就发挥作用了-规定了一个字符集出现次数的规则

量词字符集描述使用
有明确的边界{n,m}、{n,}、{n}至少n个,最多m个;n个以上;必须是n个字符集后面
没有明确边界?、*、+{0,1}、{0,}、{1,}字符及后面

既然已经学习了字符集和量词,剩下的就是把他们拼装到一快,然后发挥相应的作用?

  1. 分组
    1. 多个规则,相互之间划分界限值,其实就是();
    2. 示例:
      1. 身份证号:\d{15}(\d\d[0-9Xx])?
      2. 自定义生日格式:(\d{4})(\d{2})(\d{2})
  2. 选择
    1. 多个规则之间,优先级划分,其实就是|符号;
    2. 示例:
      1. 成都:(成|w(ei)?)\s*(都|x(in)?)

如此一来,我们便可以相互之间搭配,实现咱们想要的效果了,但是好像还有个问题?

  1. 问题:假如我们有些时候,仅仅想要筛选某一段字符串之内的数据,那么此时又该如何设置
  2. 四大常用符号
    1. ^ $ :表示从头到尾完整匹配规则
    2. ^:表示字符串开头
    3. $:表示字符串结尾
    4. \b:固定匹配完整的单词,忽略空格、开头、结尾、标点符号

学习和了解到这里,我们还缺点什么?-工具“RegexBuddy 3”

一款超级不错的编写和测试正则表达式工具,亲测过,具体如图表示


 

评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值