正则
1. 正则表达式
可以把它当作是通配符的增强版,就是帮你匹配指定规则字符串
-
限定符
- ? 表示前面一个字符需要出现 0 次或者 1 次,可有可无
- * 匹配 0 个或者多个字符
- + 匹配出现 1 次以上的字符
- {n} 准确匹配 n 次 ,(\d{4}-\d{3}[0-9X]) 数字匹配4次-数字匹配3个0-9加X
- {n} 至少匹配 n 次
- {n,m} 匹配从 n 与 m 次
- ( ) 匹配多次字符
-
运算符
- | 替换,"或"操作
-
字符类
- [ ] 内容取自方括号内,另外可以指定方括号内的范围,
- [a-z] 匹配所有小写英文字符
- [A-Z] 匹配所有大写英文字符
- [0-9] 匹配所有数字
- [^0-9] 匹配除了尖号后面列出以外的字符,取非
- [ ] 内容取自方括号内,另外可以指定方括号内的范围,
-
元字符
- \d 数字字符,等同于[0-9]
- \b 单词字符边界
- \w 单词字符(英文、数字及下划线)
- \s 空白符(包含tab和换行符)
- \D 非数字字符
- \W 非单词字符
- \S 非空白字符
- \B 非单词边界
- . 任意字符,不包含换行符
- ^ 匹配行首
- $ 匹配行尾
-
贪婪与懒惰匹配
- <.+> 贪婪匹配
- <.+?> 懒惰匹配,增加 ? 号表示贪婪匹配转换懒惰匹配
2. 使用场景
- 词法分析器
- 注册表单
- 爬虫匹配
3. 实列
- 匹配十六进制的RGB颜色值
#[a-fA-F0-9]{6}\b
- ip地址匹配
\b(25[0-5]|2[0-4]\d|[01]?\d\d?)\.{3}(25[0-5]|2[0-4]\d|[01]?\d\d?)\b
// 25[0-5] 匹配25开头
// 2[0-4]\d 匹配20,21,22,23,24开头,加一个\d
// [01]?\d\d? 匹配第一位置0,1,加2个\d,?表示ip地址可以1,2位或者3位
// {3} 重复3次
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律