58-正则表达式

1. 概念

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

在这里插入图片描述

2. 规则

1.行定位符:'HiPython Hi 刘庆东老师'
'^Hi' 匹配以Hi开始的字符串'老师$' 匹配以老师结尾的字符串

2.元字符
在这里插入图片描述
3. 限定符
在这里插入图片描述

   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。请注意,这与零长度匹配不同。

代码演示:

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  repattern = r'(黑客)|(抓包)|(监听)|(Liushao)'  # 模式字符串#about="我是一名程序员,我喜欢看黑客方面的图书,最近研究Liushao老师出的一本书"about="我是一名程序员,我喜欢看计算机网络方面的图书,我喜欢开发网站,监听罗老师"searchs=re.search(pattern,about) #进行模式匹配if searchs==None:#没有一个匹配的情况下print(about,"安全!!!")
else: #任意规则符合的情况print(about,"出现了漏洞@@@")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/95861.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/95861.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图片木马制作的三种方法

本文转自:https://www.cnblogs.com/cybersecuritystools/p/14932567.html 0x01什么是图片木马? 图片木马在网络上没有统一的定义,在这里我给出自己的定义。图片木马是一张能正常显示又包含恶意代码(比如一句话木马)的…

【Redis】缓存的穿透、击穿和雪崩

引言要了解缓存的这几个相关问题,我们先以一个例子来引入:有一个get请求:api/news/getById/1正常情况下对其申请访问的流程如图:但若是如此,访问增多或者受到攻击时很容易受到以下问题1 缓存穿透1.1 造成原因当查询一个…

打造一款高稳定、低延迟、跨平台RTSP播放器的技术实践

一、引言 RTSP(Real Time Streaming Protocol)作为经典的实时流媒体协议,已经深深嵌入到安防监控、远程教育、工业巡检、低空经济、医疗影像传输等行业之中,可以说是这些场景的视频传输“基础设施”。一个稳定的 RTSP 播放器&…

C++_数据结构

数据结构是计算机存储、组织数据的方式,它使得数据能够被高效地访问和修改。根据数据元素之间关系的不同特性,数据结构可以分为多种类型。主要可以分为两大类:逻辑结构和物理结构(也称存储结构)。 一、逻辑结构&#x…

一个正常的 CSDN 博客账号,需要做哪些基础准备?

一个正常的 CSDN 博客账号,需要做哪些准备? CSDN(中国软件开发网)作为国内最具影响力的技术社区之一,不仅是开发者获取信息的重要平台,也是技术人建立个人品牌、输出知识、积累影响力的重要阵地。想要把一…

【Python基础】 17 Rust 与 Python 运算符对比学习笔记

一、算术运算符运算符Rust 🦀Python 🐍示例 (Rust)示例 (Python)说明加法加法let sum 5 3;sum 5 3-减法减法let diff 5 - 3;diff 5 - 3*乘法乘法let product 5 * 3;product 5 * 3/除法除法let quotient 5 / 3; → 1quotient 5 / 3 → 1.666...…

单链表逆序java

在Java中实现单链表的逆序,可以通过迭代或递归两种方式。以下是两种方法的详细实现: 1. 迭代方法(推荐) public class ListNode {int val;ListNode next;ListNode(int x) { val x; } }class Solution {public ListNode reverseLi…

(11)用于无GPS导航的制图师SLAM(二)

文章目录 前言 7 构建软件包 8 开始制图 9 配置 ArduPilot 10 测试 11 视频 前言 本页展示了如何使用 RPLidarA2 激光雷达(RPLidarA2 lidar)设置 ROS 和 Google Cartographer SLAM,为 ArduPilot 提供本地位置估计,使其可以在没有 GPS 的情况下运行…

1.5、机器学习-回归算法

1、线性回归模型 线性回归模型(Liner Regression),是利用线性拟合的方式来探寻数据背后的规律。通过搭建线性回归模型,可以寻找这些散点(也称样本点)背后的趋势线(也称回归曲线)。 借助回归曲线,我们可以进行一些简单…

eclipse 安装 lombok

好久没有用eclipse,新装eclipse 发现lombok 没有生效,如下安装最省事,无需安装plugin等。 进入maven 本地目录,如:org\projectlombok\lombok\1.18.38,点击lombok jar文件指定eclipse 目录,安装完…

linux离线安装elasticsearch8.19.3

下载: 官网多版本下载: Past Releases of Elastic Stack Software | Elastic github多版本下载: https://github.com/elastic/elasticsearch/releases 上传后解压到当前目录 tar -zxvf elasticsearch-8.19.3-linux-x86_64.tar.gz 或指定解压目录 tar -xzf elasticsearch-8…

Uniapp中进行微信小程序头像和昵称的更改

一、官方文档: 1、wx.getUserInfo(uni.getUserInfo):基础库版本低于2.27.1可用 ① 文档链接: https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserInfo.htmlhttps://uniapp.dclou…

交换机详细

交换机(Sritch):一种用于电(光)信号转发的网络设备,可以为接入交换机的任意两个网络节点提供独享的电信号通路。解决什么问题?多台设备之间的数据交换的问题。因此根据它的功能,它通…

功能强大的多线程端口扫描工具,支持批量 IP 扫描、多种端口格式输入、扫描结果美化导出,适用于网络安全检测与端口监控场景

工具介绍 PortScanner - 多线程端口扫描工具,一款功能强大的多线程端口扫描工具,支持批量 IP 扫描、多种端口格式输入、扫描结果美化导出,适用于网络安全检测与端口监控场景。🌟 功能特性 🔍 灵活的扫描目标&#xff1…

【OpenHarmony文件管理子系统】文件访问接口mod_fileio解析

OpenHarmony文件访问接口mod_fileio解析 概述 mod_fileio模块是OpenHarmony文件管理API中的核心模块之一,提供了完整的文件I/O操作功能。该模块基于Node.js N-API构建,为JavaScript应用提供了丰富的文件系统操作接口,包括文件读写、目录操作、…

js逆向Webpack模块加载机制解析:从数组到JSONP

1. 概述 Webpack作为现代前端开发中最流行的模块打包工具,其模块加载机制值得深入理解。本文将解析Webpack的几种模块加载方式,包括数组形式、键值对形式和JSONP动态加载。只有理解了它的相关加载机制,我们才可以进行逆向工作。 2. 数组形式的…

Joplin-解决 Node.js 中 “digital envelope routines::unsupported“ 错误

解决 Node.js 中 “digital envelope routines::unsupported” 错误 在使用 Webpack 构建 Joplin 插件时,你可能会遇到 error:0308010C:digital envelope routines::unsupported 错误。这个错误看起来很复杂,但实际上有明确的原因和解决方案。 错误原因…

UE5 UAT

通过UAT 打包的流程&#xff0c;先整理这么点入口// Engine\Source\Programs\AutomationTool\Program.cs /// <summary> /// Main entry point /// </summary> public partial class Program {public static async Task<int> Main(string[] Arguments){Logge…

Python带状态生成器完全指南:从基础到高并发系统设计

引言&#xff1a;状态化生成器的核心价值在复杂系统开发中&#xff0c;带状态的生成器是处理复杂逻辑的核心工具。根据2024年Python开发者调查报告&#xff1a;78%的状态机实现使用带状态生成器85%的数据管道依赖状态化生成器92%的并发系统需要状态管理65%的算法优化通过状态化…

Python元组:不可变但灵活的数据容器

Python元组&#xff1a;不可变但灵活的数据容器 元组(tuple)是Python中一种不可变(immutable)但功能灵活的有序集合数据类型&#xff0c;具有以下核心特性&#xff1a;一、基本特性 不可变性‌&#xff1a;创建后不能修改元素&#xff08;增删改操作均不允许&#xff09; 有序存…