正则表达式基础,不基于re模块
正则表达式
- 何为正则表达式
- 正则字符组
- 正则特殊符号
- 正则量词
- 正则转义符
- 贪婪匹配与非贪婪匹配
正则表达式线上测试网址:http://tool.chinaz.com/regex/
1.何为正则表达式
在我理解中,正则表达式在编程语言中是有异于编程语言的,可以说它就是一门独立的语言,但是又同时适应于各类编程语言中。
功能:
正则表达式是对字符串和特殊字符进行操作的公式。
简单的来说就是我们将一串字符串通过正则表达式的规则进行字符串校验(比如手机号码校验,身份证校验,qq号校验等等),还有爬虫,数据分析等。在python中的正则表达式就是re模块。re模块也是一个内置模块,将字符串作为参数传给re模块的函数。
2. 正则字符组
形式:[查找范围]
单单用字符组进行操作的时候一次只会操作一个数据值。
1.[0123456789]等价于[0-9]
匹配在得到的字符串中0-9的范围的任意一个字符。
2.[a-z]和[A-Z]
这两个正则字符组是匹配在得到的字符串中a-z,A-Z的范围的任意一个字符
3.[0-9a-zA-Z]
这个是[0-9],[a-z],[A-Z]三个字符组连用,意思是在0-9,a-z, A-Z范围内匹配在得到的字符串中[0-9],a-z,A-Z的范围的任意一个字符
3. 正则特殊符号
特殊符号在没有量词修饰的情况一个符号一次只会针对一个数据值
正则特殊符号这些特殊符号对于字符串可以直接单独使用
例如:在‘小春和小夏在和小dsa秋玩耍’字符串中用正则‘\w’
4. 正则量词
在正则量词中,所有的量词默认都是贪婪匹配(下面会讲),尽可能的往多了取
注意:1.量词不能单独使用,必须跟在表达式的后面:表达式+量词
2.量词只能影响前面的一个表达式(ab+ 只能影响b)
例如:在‘小春和小夏在和小秋玩耍’字符串中用正则‘小+’
5.正则转义符
因为在正则表达式中我们所用到的都是字符串的形式,难免会遇到一些转义字符"\n"等,有时又不想让他们转义,下面将会讲到这些正则中的转义和取消转义的字符。
1. 遇到"\n"类型
直接加上个"\\n"
2. 若有多个"\\n"
则需要"\\\\n"
3. 还可以在字符串之前加上"r"防止转义
r"\\n"
6.贪婪匹配与非贪婪匹配
下面以此句为例:小春和小夏在和小秋玩耍
贪婪匹配
在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配
例如上图贪婪匹配在取到了第一个小..小还会一直往后取
非贪婪匹配
将贪婪变为非贪婪 只需要在量词的后面加问好即可 小.*?小非贪婪匹配 尽可能少的匹 结束条件又左右两边决定
可见非贪婪匹配在取到第一个小...小之后就停止了
所以上述两种将.*?连用左右给个表达式x(可以给一个,给左边就是陆续只取x,给右边x就是取前面任意长度的字符一直遇到x为止)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用