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,"出现了漏洞@@@")
相关推荐
独行soc13 小时前
2025年渗透测试面试题总结-234(题目+回答)
网络·python·安全·web安全·渗透测试·1024程序员节·安全狮
刘一说13 小时前
深入理解 Spring Boot 中的数据库迁移:Flyway 与 Liquibase 实战指南
数据库·spring boot·oracle
木头左13 小时前
年化波动率匹配原则在ETF网格区间选择中的应用
python
清空mega13 小时前
从零开始搭建 flask 博客实验(3)
后端·python·flask
August_._14 小时前
【MySQL】SQL语法详细总结
java·数据库·后端·sql·mysql·oracle
程序员小远14 小时前
7个常见的Jmeter压测问题
自动化测试·软件测试·python·测试工具·测试用例·压力测试·性能测试
红尘炼丹客14 小时前
《DeepSeek-OCR: Contexts Optical Compression》速览
人工智能·python·自然语言处理·ocr
☼←安于亥时→❦14 小时前
Playwright 安装与使用
python·playwright
升鲜宝供应链及收银系统源代码服务14 小时前
升鲜宝生鲜配送供应链管理系统---PMS--商品品牌多语言存储与 Redis 缓存同步实现
java·开发语言·数据库·redis·缓存·开源·供应链系统
大佬,救命!!!14 小时前
python实现象棋
开发语言·python·学习笔记·pygame·少儿编程·记录成长