58-正则表达式

1. 概念

复制代码
 正则表达式是一种用来匹配字符串的强有力的武器.
 设计思想:用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,就认为它"匹配"【合法】否则就是不匹配[不合法]
 举例:
   beijinglishao@163.com

2. 规则

复制代码
1.行定位符:

'HiPython Hi 刘庆东老师'
'^Hi' 匹配以Hi开始的字符串

'老师$' 匹配以老师结尾的字符串

2.元字符

  1. 限定符

    复制代码
    4.字符类
    [aeiou]匹配元音 
    [\u4e00-\u9fa5] 匹配汉字的

    5.排除类
    [^a-zA-z]

    6.选择字符
    |
    [a-z]|[0-9]

    7.转义字符

    [1-9]{1,3}.

    8.分组
    ()
    (.[0-9{1,3}]){3}

3. 使用正则表达式

复制代码
使用re模块 
1、re.compile(pattern,flags = 0 )
将正则表达式模式编译为正则表达式对象,可使用match(),search()以及下面所述的其他方法将其用于匹配

2、re.search(pattern,string,flags = 0 )
  扫描字符串以查找正则表达式模式产生匹配项的第一个位置 ,然后返回相应的match对象。None如果字符串中没有位置与模式匹配,则返回;否则返回false。请注意,这与在字符串中的某个点找到零长度匹配不同


3、re.match(pattern,string,flags = 0 )
如果字符串开头的零个或多个字符与正则表达式模式匹配,则返回相应的匹配对象。None如果字符串与模式不匹配,则返回;否则返回false。请注意,这与零长度匹配不同。

代码演示:

bash 复制代码
import re #1.引入re模块

#2.定义校验手机号的正则表达式   11 13*+8位
pattern = r'(13[4-9]\d{8})$|(15[01289]\d{8})$'

#3.提供要校验的手机号码
#mobile = '13612345678'
mobile = '15812345678'
# 4.使用规则匹配字符串
match=re.match(pattern,mobile)
if match==None:
    print(mobile,"不是有效的中国移动手机号码")
else:
    print(mobile, "是有效的中国移动手机号码")




------------------------------------

import  re


pattern = r'(黑客)|(抓包)|(监听)|(Liushao)'  # 模式字符串

#about="我是一名程序员,我喜欢看黑客方面的图书,最近研究Liushao老师出的一本书"

about="我是一名程序员,我喜欢看计算机网络方面的图书,我喜欢开发网站,监听罗老师"

searchs=re.search(pattern,about) #进行模式匹配

if searchs==None:#没有一个匹配的情况下
    print(about,"安全!!!")
else: #任意规则符合的情况
    print(about,"出现了漏洞@@@")
相关推荐
0xDevNull7 小时前
MySQL数据冷热分离详解
后端·mysql
A__tao7 小时前
Elasticsearch Mapping 一键生成 Java 实体类(支持嵌套 + 自动过滤注释)
java·python·elasticsearch
研究点啥好呢7 小时前
Github热门项目推荐 | 创建你的像素风格!
c++·python·node.js·github·开源软件
科技小花7 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸7 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
D4c-lovetrain7 小时前
linux个人心得22 (mysql)
数据库·mysql
迷藏4947 小时前
**发散创新:基于Rust实现的开源合规权限管理框架设计与实践**在现代软件架构中,**权限控制(RBAC)** 已成为保障
java·开发语言·python·rust·开源
明日清晨8 小时前
python扫码登录dy
开发语言·python
阿里小阿希8 小时前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql
荒川之神8 小时前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle