Python中的正则表达式
1|0什么是正则表达式
世界上分为两种人,一种是懂正则表达式的,一种是不懂正则表达式的
按照一定的规则,从某个字符串中匹配出想要的数据,这个规则就是正则表达式
2|0正则表达式常用的匹配规则
2|1匹配某个字符串
2|2点(.) 匹配任意的字符串
2|3\d 匹配任意的数字
2|4\D 匹配任意的非数字
如果text为一个数字,那么就匹配不成功了
2|5\s 匹配的是空白字符串(包括:\n,\t,\r,空格)
2|6\w 匹配的是 a-z 和 A-Z 以及数字和下划线
如果要匹配一个其他的字符,那么就匹配不到
2|7\W 匹配的是和 \w 相反的
如果你的text是一个下划线或者英文字符,那么就匹配不到了
2|8[] 组合的方式,只要满足中括号中的某一项都算匹配成功
其实可以使用中括号代替几种默认的匹配规则
\d
:[0-9]\D
:0-9\w
:[0-9a-zA-Z_]\W
:[^0-9a-zA-Z_]
2|9匹配多个字符
*:可以匹配0或者任意多个字符
以上因为匹配的要求是 \d
,那么就要求是数字,后面跟了一个星号,就可以匹配到8888这四个字符
+:可以匹配1个或者多个字符,最少一个
因为匹配的是\w
,那么就要求是英文字符,后面跟了一个加号,意味着最少要有一个满足 \w
的字符才能够匹配到。如果text是一个空白字符或者是一个不满足\w
的字符,就会报错
?:匹配的字符可以出现一次或者不出现(0或者1)
{m}:匹配m个字符
{m,n}:匹配 m-n 个字符,在这中间的字符都可以匹配到
如果text只有一个字符,也可以匹配出来
2|10几个实际的案例(以给出的文本为例)
- 验证手机号码:手机号码的规则是以1开头,第二位可以是34587,后面那9位就可以随意了
- 如果是个不满足条件的手机号码。那么就匹配不到了
- 验证邮箱:邮箱的规则是邮箱名称是用数字、数字、下划线组成的,然后是@符号,后面就是域名了
- 验证URL:URL的规则是前面是http或者https或者是ftp然后再加上一个冒号,再加上一个斜杠,再后面就是可以出现任意非空白字符了
- 验证身份证:身份证的规则是,总共有18位,前面17位都是数字,后面一位可以是数字,也可以是小写的x,也可以是大写的X
2|11^:表示以...开始
如果是在中括号中,代表的是取反操作
2|12$:表示以...结束
2|13|:匹配多个表达式或者字符串
2|14贪婪模式和非贪婪模式
- 贪婪模式:正则表达式会匹配尽量多的字符,默认是贪婪模式。
- 非贪婪模式:正则表达式会尽量少的匹配字符。
可以改成非贪婪模式,就只会匹配到0
2|15匹配0-100之间的数字
如果text=101,就会抛出一个异常
2|16转义字符和原生字符
在正则表达式中,有些字符是有特殊意义的字符,在 Python 中 \
也是用来转义的,因此如果想要在普通的字符串中匹配 \
,那么就要给出 四个 \
所以要使用原生字符就可以解决这个问题
__EOF__

本文作者:阿星Plus
本文链接:https://www.cnblogs.com/meowv/p/11310552.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/meowv/p/11310552.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?