Python基础语法 - 正则表达式

概述

正则表达式是一个特殊的字符序列,它常常用于检查是否与某种模式匹配。第八节课主要介绍了从以下几方面介绍了Python正则表达式的用法。
(1)re模块的使用
(2)字符匹配、数量表示、边界表示
(3)正则表达式的高级用法
(4)贪婪与非贪婪模式

re模块

(一)match(正则表达式,待匹配字符串)
(1)采用从左向右逐项匹配,从起始位置起。
(2)用于正则匹配检查,如果“待匹配字符串”能够匹配“正则表达式”,则match方法返回匹配对象,否则返回None

import re #导入re模块

#从起始位置开始匹配
rs = re.match("51cto", "51cto.com")
print(rs)

#不从起始位置开始匹配
rs = re.match("cn", "51cto.com")

运行结果:

<_sre.SRE_Match object at 0x02B33FA8>
None

(二)group()方法 :用来返回字符串的匹配部分

import re

rs = re.match("51cto", "51cto.com")
print(rs.group())

运行结果:

51cto

字符匹配、数量表示、边界表示

(一)单字符匹配

(1). 匹配除"\n"之外的任意单个字符

import re

rs = re.match(".","a")
print(rs.group())

rs = re.match(".","1")
print(rs.group())

rs = re.match("...","abc")    #多个字符
print(rs.group())

rs = re.match(".","\n")        #\n字符
print(rs)

运行结果:

a
1
abc
None

(2)\s:匹配任意空白字符,如空格,制表符“\t”,换行符“\n”

import re
rs = re.match("\s","\t")
print(rs)
rs = re.match("\s","\n")
print(rs)
rs = re.match("\s"," ")
print(rs)

(3)\S:匹配任意非空字符;和\s模式相反

rs = re.match("\S","\t")
print(rs)
rs = re.match("\S","abc")  #匹配单个字符,从起始位置
print(rs.group())

运行结果:

None
a

其他单字符匹配用法不一一列举。
(二)数量表示

(1)* 出现次数 n >= 0

import re

rs = re.match("1\d*", "1234567")     #起始是1,后面int出现任意次
print(rs.group())

rs = re.match("1\d*", "1234567abc")     #起始是1,后面int出现任意次
print(rs.group())

运行结果:

1234567
1234567

(三)边界表示
(1)字符串与单词边界
(2)匹配分组

正则表达式的高级用法

贪婪与非贪婪模式

作业题

奶茶馆价格结算系统优化:
1、 使用正则表达式判断顾客输入的手机号是否符合手机号设置规则:
1) 以数字 1 开头
2) 第二位为 3578 中的任意数字
3) 其余 9 位为 0-9 任意数字
2、 输出手机号运营商,判断规则:
? 移动运营商:手机号前三位为 134、135、136、137、138、139、150、151、152、157、 158、159、178、182、183、184、187、188
? 联通运营商:手机号前三位为 130、131、132、155、156、176、185、186
? 电信运营商:手机号前三位为 133、153、173、177、180、181、189、199

3、 使用正则表达式判断输入奶茶编号,如果不在 1-5 范围内,输出: Woops!我们只售卖以上五种奶茶哦!新口味敬请期待! 并将判断过程设置为类中的方法。

原文地址:http://blog.51cto.com/xqtyler/2108203

时间: 2025-01-20 00:07:22

Python基础语法 - 正则表达式的相关文章

Python基础语法(转)

作者:Peter 出处:http://www.cnblogs.com/Peter-Zhang/ Python 基础语法(一) Python的特点 1. 简单 Python是一种代表简单思想的语言. 2. 易学 Python有极其简单的语法. 3. 免费.开源 Python是FLOSS(自由/开放源码软件)之一. 4. 高层语言 使用Python编写程序时无需考虑如何管理程序使用的内存一类的底层细节. 5. 可移植性 Python已被移植到很多平台,这些平台包括Linux.Windows.Free

python基础语法(一)

Python的特点 1. 简单 Python是一种代表简单思想的语言. 2. 易学 Python有极其简单的语法. 3. 免费.开源 Python是FLOSS(自由/开放源码软件)之一. 4. 高层语言 使用Python编写程序时无需考虑如何管理程序使用的内存一类的底层细节. 5. 可移植性 Python已被移植到很多平台,这些平台包括Linux.Windows.FreeBSD.Macintosh.Solaris.OS/2.Amiga.AROS.AS/400. BeOS.OS/390.z/OS.

python之最强王者(2)——python基础语法

背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于python学习,直接使用pycharm IDE开发. 一.第一个python程序 按照套路,入我编程界的门,必须得遵守门规,先来个hello,world,先干为敬! 客官请看图: 运行结果如下图: 看到这里不知道你想说什么,但是我只能说 想一下,java写出一个hello,world得有main方法吧,这得

Python 基础语法

Python 基础语法 Python语言与Perl,C和Java等语言有许多相似之处.但是,也存在一些差异. 第一个Python程序 E:\Python>python Python 3.3.5 (v3.3.5:62cf4e77f785, Mar 9 2014, 10:37:12) [MSC v.1600 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "

Python 基础语法day02

Python标识符 在python里,标识符有字母.数字.下划线组成. 在python中,所有标识符可以包括英文.数字以及下划线(_),但不能以数字开头. python中的标识符是区分大小写的. 以下划线开头的标识符是有特殊意义的.以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用"from xxx import *"而导入: 以双下划线开头的(__foo)代表类的私有成员:以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标

Python 基础语法(四)

Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)-------------------------------------------- 十.Python标准库 Python标准库是随Pthon附带安装的,包含了大量极其有用的模块. 1. sys模块 sys模块包含系统对应的功能 sys.argv ---包含命令行参数,第一个参数是py的文件名 sys.platform ---返回平台类型 sy

Python 基础语法(三)

Python 基础语法(三) --------------------------------------------接 Python 基础语法(二)-------------------------------------------- 七.面向对象编程 python支持面向对象编程:类和对象是面向对象编程的两个主要方面,类创建一个新的类型,对象是这个类的实例. 对象可以使用普通的属于对象的变量存储数据,属于对象或类的变量被称为域:对象也可以使用属于类的函数,这样的函数称为类的方法:域和方法可

Python 基础语法(二)

Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) -------------------------------------------- 2. 元组 tuple和list十分相似,但是tuple是不可变的,即不能修改tuple,元组通过圆括号中用逗号分割的项定义:支持索引和切片操作:可以使用 in 查看一个元素是否在tuple中.空元组():只含有一个元素的元组("a",) #需要加

Python基础篇-Python基础语法

Python基础语法 为什么学习python Python的安装 rpm -q python uname -r python -V yum -y install python-pip pip install ipython         支持 2.7 pip install ipython==1.2.1                支持 2.6