博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则--re模块:匹配开头/结尾(^/$)
阅读量:2392 次
发布时间:2019-05-10

本文共 1879 字,大约阅读时间需要 6 分钟。

匹配开头结尾

字符 功能
^ 匹配字符串开头
$ 匹配字符串结尾

示例1:$

 

需求:匹配163.com的邮箱地址
email_list = [
"
"
,
"
eihei"
,
".
"
]
 
for email in email_list:    ret = re.match("[\w]{4,20}@163\.com$", email) \.代表只是一个点 $代表以xxx结尾的字符串    if ret:        print("%s ---是符合规定的邮件地址” % email)    else:        print("%s ---不符合要求" % email)

 

 
运行结果:
 
xiaoWang@163.com            # ---是符合规定的邮件地址xiaoWang@163.comheihei      # ---不符合要求   # 如果没有$,这个字符串会匹配出来.com.xiaowang@qq.com        # ---不符合要求

 

匹配分组

字符 功能
| 匹配左右任意一个表达式
(ab) 将括号中字符作为一个分组
\num 引用分组num匹配到的字符串
(?P<name>) 分组起别名
(?P=name) 引用别名为name分组匹配到的字符串

示例1:|

需求:匹配出0-100之间的数字
 
#coding=utf-8import reret = re.match("[1-9]?\d","8”) # ?匹配前面的字符出现1次或者0次 类似78也可以匹配print(ret.group())  # 结果:8

 

 
# 可能匹配不成功时?
 
import reret = re.match("[1-9]?\d$","08")if ret:    print(ret.group())else:    print("不在0-100之间”)           # 结果:不在0-100之间

 

 
# 添加|
 
 
import reret = re.match("[1-9]?\d$|100","78")print(ret.group())                          # 结果: 78ret = re.match("[1-9]?\d$|100","100")print(ret.group())                         # 结果: 100

 

示例2:( )

需求:匹配出163、126、qq邮箱
 
#coding=utf-8import reret = re.match("\w{4,20}@163\.com", "test@163.com”)  print(ret.group())                               # 结果: test@163.comret = re.match("\w{4,20}@(163|126|qq)\.com", "test@gmail.com")if ret:    print(ret.group())else:    print("不是163、126、qq邮箱")                  # 结果: 不是163、126、qq邮箱

 

 

需求:不是以4、7结尾的手机号码(11位)

 

import retels = ["13100001234", "18912344321", "10086", "18800007777"]for tel in tels:    ret = re.match("1\d{9}[0-3,5-6,8-9]", tel)    if ret:        print(ret.group())    else:        print("%s 不是想要的手机号" % tel)

 

结果如下:

13100001234 不是想要的手机号1891234432110086 不是想要的手机号18800007777 不是想要的手机号

 

示例三:分组匹配

 

需求:提取区号和电话号码

import reret = re.match("([^-]*)-(\d+)", "010-12345678")print(ret.group())print(ret.group(1))print(ret.group(2))

 

结果如下:

010-1234567801012345678

 

 

 

 

^在[ ]里面代表非的含义:例如:[^-]*   *代表前所有字符0个或者多个,非-的字符串[^abc]  代表非a、且非b 、且非c的字符

 

 

 

转载地址:http://iaeab.baihongyu.com/

你可能感兴趣的文章
桥接模式-通俗的理解(转)
查看>>
MXML 文件中的xmlns是什么意思?
查看>>
Flex Builder 中的工作空间、项目
查看>>
Flex 获得远程数据
查看>>
Flex 添加效果的两种方法
查看>>
Flash Builder 4字体设置
查看>>
Actionscript 3.0 笔记一
查看>>
图像处理库OpenCV参考网址
查看>>
dllimport与dllexport作用与区别
查看>>
OpenGL坐标系
查看>>
C++用new和不用new创建类对象区别
查看>>
C++ C# JAVA 创建对象
查看>>
齐次坐标的理解
查看>>
QT配置文件
查看>>
QT .pro配置文件2
查看>>
Qt 模态与非模态对话框
查看>>
Qt C++中的关键字explicit .
查看>>
qtcreator中常用快捷键
查看>>
PowerDesigner 简介
查看>>
VS2008快捷键大全
查看>>