正则表达式小结篇

发布时间 - 2026-01-10 22:05:23    点击率:

正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

下面小编给大家总结了些关于正则表达式知识点,具体内容如下所示:

1、元字符

  [拥有特殊含义的元字符]
  \d -> 匹配一个0-9的数字,相当于[0-9],和它相反的是\D ->匹配一个除了0-9的任意字符
  \w -> 匹配一个0-9、a-z、A-Z、_的数字或字符,相当于[0-9a-zA-Z_]
  \s -> 匹配一个空白字符(空格、制表符...)
  \b -> 匹配一个单词的边界
  \t -> 匹配一个制表符
  \n -> 匹配一个换行
  . -> 匹配一个除了\n以外的任意字符
  ^ -> 以某一个元字符开头
  $ -> 以某一个元字符结尾
  \ -> 转移字符
  x|y -> x或者y的一个
  [xyz] -> x、y、z中的任意一个
  [^xyz] -> 除了xyz中的任意一个字符
  [a-z] -> 匹配a-z中的任意一个字符
  [^a-z] -> 匹配除了a-z中的任意一个字符
  () -> 正则中的分组

  注意:

  1)关于[]

    a、[+] ->中括号中出现的所有字符都代表的是本身的意思
    b、[12-65] ->这个不是12-65而是1/2-6/5三者中的一个

  2)关于()

    a、分组的作用是改变默认的优先级,例如:/^18|19$/,181、189、119、819、1819...都符合,而不是我们认为的18或19,但是改成/^(18|19)$/就是单纯的18或19了
    b、可以在捕获大正则匹配的内容同时,把分组匹配的内容也进行捕获->分组捕获
    c、分组引用,例如:/^(\d)(\w)\2\1$/,这里的\2是和第二个分组出现一模样的内容,\1是和第一个分组出现一模一样的内容,例如:"0aa0"就符合了

  [代表数量的量词元字符]

  * -> 0到多个
  + -> 1到多个
  ? -> 0到1个
  {n} -> 出现n次
  {n,} -> 出现n到多次
  {n,m} -> 出现n到m次

  注意:

  1)关于?的几种情况

    a、放在非量词元字符后面,代表出现0-1次
    b、放在量词元字符后面,代表取消捕获时候的贪婪性,例如:reg=/\d+/; reg.exec("2015") -> "2015" 但是如果正则这样写 reg=/\d+?/; reg.exec("2015") -> "2"
    c、在分组开头加?:,代表当前的分组只是匹配不进行捕获,例如:/^(?:\d+)$/
    d、在分组开头加?=,正向预查,例如:/^abcdef(?=1|2)$/ 只有"abcdef1"和"abcdef2"才符合
    e、在分组开头加?!,负向预查,例如:/^abcdef(?!1|2)$/ 除了"abcdef1"和"abcdef2"不符合,其他的只要是"abcdef(任何的东西)"都符合

  [代表本身意思的元字符]

  除了以上的,在字面量方式中,我们出现的其他任意字符代表的都是自己本身的意思

  var num=12;
  var reg=/^\w"+num+"$/; ->这里"+num+"不是把变量的值拼接,而这里的不管是"还是+都是元字符

  ->对于需要拼接字符串和变量的方式我们只能使用实例方式创建正则

2、修饰符

  i -> ignoreCase 忽略字母的大小写
  g -> global 全局匹配 (加上g可以解决正则捕获时候的懒惰性)
  m -> multiline 多行匹配

3、项目中常用的正则

  1)有效数字的

var reg=/^[+-]?(\d|([1-9]\d+))(\.\d+)?$/;

  2)邮箱的

 var reg = /^\w+((-\w+)|(\.\w+))*@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;

  3)电话的

 var reg = /^1\d{10}$/;

  4)年龄在18-65之间的

 var reg = /^((18|19)|([2-5]\d)|(6[0-5]))$/;

  5)中文姓名

 var reg = /^[\u4e00-\u9fa5]{2,4}$/;

  6)身份证

 var reg = /^(\d{6})(\d{4})(\d{2})(\d{2})(?:\d{2})(\d)(?:\d|X)$/;
 //-> 12828(省市县) 1990(年) 12(月) 04(日) 06 1(奇数是男偶数是女) 7(数字或者X)

4、正则的匹配

  reg.test([string]) ->true就是匹配成功  false->匹配不成功

5、正则的捕获

  1)reg.exec([string])

    -> 首先去匹配,匹配成功在捕获,返回的是一个数组; 如果匹配不成功返回的是null;
    -> 正则的捕获即懒惰又贪婪
    -> 解决懒惰性 在正则的末尾增加全局修饰符g
    -> 解决贪婪性 在量词后面加?

以上所述是小编给大家介绍的正则表达式小结篇,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# 正则小结  # swift中的正则表达式小结  # js正则表达式中的问号几种用法小结  # 正则表达式(括号)、[中括号]、{大括号}的区别小结  # jQuery中校验时间格式的正则表达式小结  # 正则中需要转义的特殊字符小结  # PHP 正则表达式之正则处理函数小结(preg_match  # preg_match_all  # preg_replace  # preg_split)  # php正则表达匹配中文问题分析小结  # ExtJs 正则表达式小结  # PHP 正则表达式常用函数使用小结  # 的是  # 都是  # 小编  # 放在  # 多个  # 给大家  # 正则表达式  # 不成功  # 第一个  # 在此  # 修饰符  # 是由  # 其他的  # 第二个  # 几种  # 作为一个  # 不符合  # 所示  # 所述  # 给我留言 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 高端智能建站公司优选:品牌定制与SEO优化一站式服务  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  如何用AI帮你把自己的生活经历写成一个有趣的故事?  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  深圳网站制作平台,深圳市做网站好的公司有哪些?  高性价比服务器租赁——企业级配置与24小时运维服务  电商网站制作价格怎么算,网上拍卖流程以及规则?  微信小程序 input输入框控件详解及实例(多种示例)  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  如何挑选高效建站主机与优质域名?  如何快速搭建个人网站并优化SEO?  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  如何在香港服务器上快速搭建免备案网站?  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  如何在云主机上快速搭建网站?  Java类加载基本过程详细介绍  魔方云NAT建站如何实现端口转发?  移动端脚本框架Hammer.js  Python制作简易注册登录系统  如何在局域网内绑定自建网站域名?  如何快速查询网址的建站时间与历史轨迹?  使用豆包 AI 辅助进行简单网页 HTML 结构设计  Laravel怎么为数据库表字段添加索引以优化查询  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  如何注册花生壳免费域名并搭建个人网站?  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  如何用搬瓦工VPS快速搭建个人网站?  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  潮流网站制作头像软件下载,适合母子的网名有哪些?  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  Laravel如何实现多对多模型关联?(Eloquent教程)  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  实现点击下箭头变上箭头来回切换的两种方法【推荐】  如何在阿里云ECS服务器部署织梦CMS网站?  如何基于云服务器快速搭建网站及云盘系统?  JS经典正则表达式笔试题汇总  Laravel如何使用查询构建器?(Query Builder高级用法)  如何在建站之星绑定自定义域名?  JavaScript如何操作视频_媒体API怎么控制播放  千库网官网入口推荐 千库网设计创意平台入口  如何基于云服务器快速搭建个人网站?  如何在自有机房高效搭建专业网站?  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  独立制作一个网站多少钱,建立网站需要花多少钱?