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,"出现了漏洞@@@")
相关推荐
极客数模11 分钟前
【2026美赛赛题初步翻译F题】2026_ICM_Problem_F
大数据·c语言·python·数学建模·matlab
野生绿箭侠27 分钟前
Ncos 2.3.2 版本集成达梦数据库
数据库
仍然.1 小时前
MYSQL--约束
数据库·mysql
乡野码圣1 小时前
【RK3588 Android12】RCU机制
java·jvm·数据库
亓才孓2 小时前
[数据库]应该注意的细节
数据库·sql
小鸡吃米…2 小时前
机器学习中的代价函数
人工智能·python·机器学习
Li emily3 小时前
如何通过外汇API平台快速实现实时数据接入?
开发语言·python·api·fastapi·美股
m0_561359673 小时前
掌握Python魔法方法(Magic Methods)
jvm·数据库·python
xxxmine3 小时前
redis学习
数据库·redis·学习
Ulyanov3 小时前
顶层设计——单脉冲雷达仿真器的灵魂蓝图
python·算法·pyside·仿真系统·单脉冲