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,"出现了漏洞@@@")
相关推荐
TDengine (老段)5 分钟前
TDengine Python 连接器入门指南
大数据·数据库·python·物联网·时序数据库·tdengine·涛思数据
萧曵 丶28 分钟前
事务ACID特性详解
数据库·事务·acid
田里的水稻30 分钟前
C++_python_相互之间的包含调用方法
c++·chrome·python
2501_9418705635 分钟前
面向微服务熔断与流量削峰策略的互联网系统稳定性设计与多语言工程实践分享
开发语言·python
kejiayuan1 小时前
CTE更易懂的SQL风格
数据库·sql
kaico20181 小时前
MySQL的索引
数据库·mysql
GIS之路1 小时前
GDAL 实现矢量裁剪
前端·python·信息可视化
IT=>小脑虎1 小时前
Python零基础衔接进阶知识点【详解版】
开发语言·人工智能·python
智航GIS1 小时前
10.6 Scrapy:Python 网页爬取框架
python·scrapy·信息可视化
清水白石0082 小时前
解构异步编程的两种哲学:从 asyncio 到 Trio,理解 Nursery 的魔力
运维·服务器·数据库·python