前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >你不懂的正则

你不懂的正则

作者头像
公众号---人生代码
发布2019-07-24 11:37:02
3800
发布2019-07-24 11:37:02
举报
文章被收录于专栏:人生代码人生代码

正则表达式

什么是正则表达式呢? 从名字上来看的话,就是通过正确的法则去匹配的表达式, 比较官方的定义就是,定义模式的字符串,其本质就是字符串,主要是用来匹配目标字符串,已找到匹配的字符串,并对其进行处理,如分割,替换等,正则表达式匹配语法

正则表达式一览表

re 正则模块

  1. re.compile()函数
代码语言:javascript
复制
见名知意,compile 就是编译的意思:使用正则表达式之前,
需要将自定义的模式编译成为正则表达式对象(模式对象),
这个对象代表了模式中对应的正则表达式,匹配时,
可以调用其match()函数,search()函数

函数语法如下:
re.compile(pattern,flags=0)
参数说明:pattern是匹配的正则表达式,flags是标志位,控制匹配的方式
  1. compile 函数中的flags取值
  1. re.match()函数
代码语言:javascript
复制
re.match()函数尝试从字符串的起始位匹配一个模式,匹配成功,re.match()函数返回一个匹配对象,是否返回None;

函数语法:
re.match(pattern,string,flags=0)

参数说明:
pattern是匹配正则表达式,String是进行匹配的目标字符串,flags是标志位,控制正则表达式,如是否区分大小写,多行匹配
  1. re.search()函数
代码语言:javascript
复制
re.search()函数是扫描整个字符串并返回第一个成功的匹配,匹配成功,返回一个匹配的对象,否则返回None。

语法:
re.search(pattern,string,flags)
参数含义同re.match()函数一样,
  1. re.findall()函数
代码语言:javascript
复制
re.findall()函数返回总是正则表达式在字符串中所有匹配结果的列表
函数语法:
re.findall(pattern,string[,flags])
参数说明与re.match()函数
  1. re.sub()函数
代码语言:javascript
复制
re.sub()函数用于替换字符串中的匹配项
语法函数:
re.sub(pattern,repl,string,count=0,flags=0)
参数说明:
pattern是正则表达式中替换的模式表达式字符串,repl是替换的字符串,也可以为一个函数,string是一个要被查找替换的原始字符串,count是匹配后替换的次数,默认为0,表示替换为所有匹配

说了上面这么多,是不是很罗嗦呢?并不是罗嗦哦,其实上面就是一些API的说明,接下来,我们就来看看实际例子吧,小伙伴们期待吧?

电子邮箱格式的匹配

任务描述:编写一个Python程序 检查电子邮箱的格式是否正确

  1. 设计思路:用户输入邮箱,构造邮箱的匹配正则表达式,调用re.match()函数进行匹配,并输入提示
代码语言:javascript
复制
import re
p = re.compile(r'^[\w\d]+[\d\w\_\.]+@([\d\w]+)\.([\d\w]+)(?:\.[\d\w]+)?$|^(?:\+86)?(\d{3})\d{8}$|^(?:\+86)?(0\d{2,3})\d{7,8}$')
email = input("请输入正确的邮箱:")
m = p.match(email)
print(m.group())

电话号码的验证

代码语言:javascript
复制
import re
address = "李明 13530315051 liming@126.com\
刘东 13791072536 liudong@163.com\
张旭 18667676767 zhangxu@sina.com\"

p1 = re.compile(r'\d+')
phone = p1.findall(address)

print(phone)

p2 = re.compile("^0\d{2,3}\d{7,8}$|^1[358]\d{9}$|^147\d{8}")

for e in phone 
    m = p2.match(e)
    if m:
        print(p2.match().group())
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CryptoCode 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正则表达式
  • 正则表达式一览表
  • re 正则模块
    • 电子邮箱格式的匹配
      • 电话号码的验证
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档