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
- 匹配非空白字符.
- 匹配除换行符外的任意字符|
- 或运算符()
- 组
注:空字符介绍:
空格 (Space):按下空格键
换行符 (Newline):在Unix/Linux系统中,换行符是 \n 。在Windows系统中,换行符是
r\n (回车符 \r ,后面跟着换行符 \n )。
回车符 (Carriage Return):使用 \r 来表示。
换页符 (Page Break):使用 \f 来表示。
制表符 (Tab):使用 \t 来表示。
垂直制表符 (Vertical Tab):使用 \v 来表示。
.....
4. 修饰符
常用修饰符
g
(global) - 全局搜索i
(ignore case) - 忽略大小写
修饰符组合
可以组合使用多个修饰符 ig
顺序不影响功能
5. 匹配模式
贪婪匹配(默认)
尽可能多地匹配字符
直到无法满足模式为止
惰性匹配
尽可能少地匹配字符
在量词后添加
?
实现常用惰性量词:
+?
、*?
、??
6. 字符串方法
常用方法
split()
- 分割字符串replace()
- 替换字符串replaceAll()
- 替换所有匹配项match()
- 返回匹配结果数组search()
- 返回第一个匹配的索引
决各种字符串处理问题。