当前位置: 首页 > news >正文

JS-第二十三天-正则

正则表达式总结

1. 基本概念

什么是正则表达式

  • 强大的文本模式匹配工具

  • 使用特定语法规则描述和匹配字符串模式

  • 包含普通字符和特殊字符(元字符)

  • 用单个字符串描述一系列符合特定规则的字符串

应用价值

  • 显著提高开发效率

  • 在字符串处理方面带来巨大成就感

  • 广泛应用于表单验证、数据提取、文本搜索等场景

语言支持

  • JavaScript、C#、Java、PHP、Python 等主流编程语言都支持

2. 创建方式

字面量方式

  • 使用斜线 / 包围模式

  • 适用于静态正则表达式

  • 性能更优(编译时确定模式)

构造函数方式

  • 使用 new RegExp() 构造函数

  • 支持动态生成正则表达式

  • 运行时确定模式

选择建议

  • 静态模式:使用字面量方式

  • 动态模式:使用构造函数方式

  • 性能敏感场景:优先选择字面量方式

3. 核心语法要素

字符集

  • [...] - 字符集合,匹配方括号中的任意一个字符

  • [^...] - 反向字符集合,匹配不在方括号中的字符

  • 常用字符集:中文字符、数字集、字母集、单词字符集

边界符

  • ^ - 匹配字符串开始位置

  • $ - 匹配字符串结束位置

  • ^pattern$ - 精确匹配整个字符串

量词

  • {n} - 恰好匹配 n 次

  • {n,} - 至少匹配 n 次

  • {n,m} - 匹配 n 到 m 次

  • + - 一次或多次({1,})

  • ? - 零次或一次({0,1})

  • * - 零次或多次({0,})

元字符

  • \d - 匹配数字字符 [0-9]

  • \D - 匹配非数字字符 0-9

  • \w - 匹配单词字符 [a-zA-Z0-9_]

  • \W - 匹配非单词字符 a-zA-Z0-9_

  • \s - 匹配空白字符

  • \S - 匹配非空白字符

  • . - 匹配除换行符外的任意字符

  • | - 或运算符

  • () - 组

注:空字符介绍:

  1. 空格 (Space):按下空格键

  2. 换行符 (Newline):在Unix/Linux系统中,换行符是 \n 。在Windows系统中,换行符是

r\n (回车符 \r ,后面跟着换行符 \n )。

  1. 回车符 (Carriage Return):使用 \r 来表示。

  2. 换页符 (Page Break):使用 \f 来表示。

  3. 制表符 (Tab):使用 \t 来表示。

  4. 垂直制表符 (Vertical Tab):使用 \v 来表示。

  5. .....

4. 修饰符

常用修饰符

  • g (global) - 全局搜索

  • i (ignore case) - 忽略大小写

修饰符组合

  • 可以组合使用多个修饰符 ig

  • 顺序不影响功能

5. 匹配模式

贪婪匹配(默认)

  • 尽可能多地匹配字符

  • 直到无法满足模式为止

惰性匹配

  • 尽可能少地匹配字符

  • 在量词后添加 ? 实现

  • 常用惰性量词:+?*???

6. 字符串方法

常用方法

  • split() - 分割字符串

  • replace() - 替换字符串

  • replaceAll() - 替换所有匹配项

  • match() - 返回匹配结果数组

  • search() - 返回第一个匹配的索引

决各种字符串处理问题。


PS:文档来自于我的老师

http://www.dtcms.com/a/326455.html

相关文章:

  • Vue2篇——第二章 Vue从指令修饰符到侦听器的全面解析(重点)
  • 反射之Reflect
  • 网页复杂文本信息解析提取-Crawl4AI+Ollama
  • week1+2+3
  • Python自学05-分支结构
  • 2025年08月11日Github流行趋势
  • Deepoc如何让传统码垛机器人获得“类人决策力“​
  • python之浅拷贝深拷贝
  • 01-spring-手写spring-demo实现基础的功能
  • SAM2的应用
  • 机器学习中数据集的划分难点及实现
  • 比例份额调度
  • CV 医学影像分类、分割、目标检测,之【血红细胞分类】项目拆解
  • n8n中调用playwright-mcp 项目
  • LeetCode151~188题解
  • C++ 流式处理字符串
  • C语言变量的声明和定义有什么区别?
  • UE 手柄点击UI 事件
  • 长难句lesson1
  • PPIO上线智谱GLM-4.5V
  • 【stm32】EXTI外部中断
  • QT聊天项目DAY18
  • Prompt Engineering 最佳实践:让AI输出更精准的核心技巧
  • HIS系统:医院信息化建设的核心,采用Angular+Java技术栈,集成MySQL、Redis等技术,实现医院全业务流程管理。
  • LS1043A+AQR115C万兆网口调试
  • 机器学习第九课之DBSCAN算法
  • 下一代防火墙组网全解析
  • Linux下安装jdk
  • 从零构建企业级K8S:高可用集群部署指南
  • 简单了解MongoDB数据存储