Python基础day-13[模块:re未完]

re:

  本质上就是一种小型语言。

  操作的对象是字符串。

re.findall():返回的是一个列表。匹配出所有符合条件的元素。

re.search():返回的是一个对象。只匹配出找到的第一个元素,如果匹配成功那么返回的对象就是含匹配目标的索引范围,和匹配内容。匹配失败就返回None。

re.match():返回跟search一样也是一个对象,只匹配文件开头位置。如果匹配成功那么返回的对象就是含匹配目标的索引范围,和匹配内容。匹配失败就返回None。

示例:
s = ‘abclaskdjaklsjdlasdjabcasd123lksdlasd0asdasdaaa‘

res = re.match(‘abc‘,s)
print(res,res.group())
res = re.search(‘aaa‘,s)
print(res,res.group())
res = re.findall(‘abc‘,s)
print(res)

执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-14/day14_练习.py
<_sre.SRE_Match object; span=(0, 3), match=‘abc‘> abc
<_sre.SRE_Match object; span=(44, 47), match=‘aaa‘> aaa
[‘abc‘, ‘abc‘]

Process finished with exit code 0

元字符:

.:可以指代除换行符以外的任意符号。

import re

s = ‘abclaskdjaklabcsjdlasdjaba1ccasd123a/clksdlasd0asdasdaaa‘

res = re.findall(‘a.c‘,s)
print(res)
res = re.findall(‘a..c‘,s)
print(res)

执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-14/day14_练习.py
[‘abc‘, ‘abc‘, ‘a1c‘, ‘a/c‘]
[‘a1cc‘]

Process finished with exit code 0

^:只匹配字符串的开头。

import re

s = ‘abc1231321abclskdjlsk654sdsd3a13213a‘
s1 = ‘32132abc‘

res = re.findall(‘^abc‘,s)
print(res)
res = re.findall(‘^abc‘,s1)
print(res)

执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-14/day14_练习.py
[‘abc‘]
[]

Process finished with exit code 0

$:只匹配字符串的结尾。

import re

s = ‘abc1231321abclskdjlsk654sdsd3a13213a‘
s1 = ‘32133abc‘

res = re.findall(‘3a$‘,s)
print(res)
res = re.findall(‘3a$‘,s1)
print(res)

执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-14/day14_练习.py
[‘3a‘]
[]

Process finished with exit code 0

*:符号前一个字符重复0-无穷次。

import re

s = ‘abccccccabccdllkjabc‘

res = re.findall(‘abc*‘,s)
print(res)

执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-14/day14_练习.py
[‘abcccccc‘, ‘abcc‘, ‘abc‘]

Process finished with exit code 0

+:符号前一个字符重复1-无穷次。

import re

s = ‘abccccccabccdllkjabcabababc‘

res = re.findall(‘abc+‘,s)
print(res)

执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-14/day14_练习.py
[‘abcccccc‘, ‘abcc‘, ‘abc‘, ‘abc‘]

Process finished with exit code 0

?:符号前一个字符重复0-1次。

import re

s = ‘abccccccabccdllkjabcabababc‘

res = re.findall(‘abc?‘,s)
print(res)

执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-14/day14_练习.py
[‘abc‘, ‘abc‘, ‘abc‘, ‘ab‘, ‘ab‘, ‘abc‘]

Process finished with exit code 0

{}:符号前一个字符指定重复的次数。

import re

s = ‘abccccccabccdllkjabcccabababc‘

res = re.findall(‘abc{3,4}‘,s)
print(res)
res = re.findall(‘abc{5}‘,s)
print(res)

执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-14/day14_练习.py
[‘abcccc‘, ‘abccc‘]
[‘abccccc‘]

Process finished with exit code 0

\:转义符,转换后面字符的原本意思。

  转义符跟元字符在一起的时候会去除其功能。还可以跟特殊的普通符号,把某些普通的符号转成特别的意义。

可转换的普通符号:

\d  匹配任何十进制数;      它相当于类 [0-9]
\D  匹配任何非数字字符;    它相当于类 [^0-9]
\s  匹配任何空白字符;      它相当于类 [ \t\n\r\f\v]
\S  匹配任何非空白字符;    它相当于类 [^ \t\n\r\f\v]
\w  匹配任何字母数字字符;   它相当于类 [a-zA-Z0-9_]
\W  匹配任何非字母数字字符; 它相当于类 [^a-zA-Z0-9_]
\b  匹配一个特殊字符边界,比如空格 ,&,#等

():分组。把某些内容固定成一项。

import re
s = ‘rabhdg8s99d222a1‘
ret=re.findall(‘(ab)|\d+‘,s)
print(ret)

执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-14/day14_练习.py
[‘ab‘, ‘‘, ‘‘, ‘‘, ‘‘]

Process finished with exit code 0

():还有个优先显示功能,所以上面数字没有显示出来。
通过下列办法解决:
import re
s = ‘rabhdg8s99d222a1‘
ret=re.findall(‘(?:ab)|\d+‘,s)
print(ret)

执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-14/day14_练习.py
[‘ab‘, ‘8‘, ‘99‘, ‘222‘, ‘1‘]

Process finished with exit code 0

有名分组:

import re
s = ‘rabhdg8s99d222a1‘
ret=re.search(‘(?P<test>ab)‘,s)
print(ret.group(‘test‘))

执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-14/day14_练习.py
ab

Process finished with exit code 0

[]:字符集(多选一)只匹配一个字符集中的一个字符。

  在字符集中 只有  ^  \  -  还有自己的特殊意义,其他的都是普通的字符集,在字符集中的^号不是代表匹配开头而是取反的意思。

import re
s = ‘sdnaskdabcaspdlabefla1231ksaaabbcpas213lsdcbcablkc‘

res = re.findall(‘ab[ce]‘,s)
print(res)
res = re.findall(‘[a-z]+‘,s)
print(res)
res = re.findall(‘[0-9]+‘,s)
print(res)
res = re.findall(‘[^a-z]+‘,s)
print(res)
res = re.findall(‘[\d]+‘,s)
print(res)

执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-14/day14_练习.py
[‘abc‘, ‘abe‘]
[‘sdnaskdabcaspdlabefla‘, ‘ksaaabbcpas‘, ‘lsdcbcablkc‘]
[‘1231‘, ‘213‘]
[‘1231‘, ‘213‘]
[‘1231‘, ‘213‘]

Process finished with exit code 0

|:或的意思。

import re
s = ‘sdnaskdabcaspdlabefla1231ksaaabbcpas213lsdcbcablkc‘

res = re.findall(‘a.c|\d+‘,s)
print(res)

执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-14/day14_练习.py
[‘abc‘, ‘1231‘, ‘213‘]

Process finished with exit code 0
时间: 2024-12-13 14:47:20

Python基础day-13[模块:re未完]的相关文章

python基础31[常用模块介绍]

python基础31[常用模块介绍] python除了关键字(keywords)和内置的类型和函数(builtins),更多的功能是通过libraries(即modules)来提供的. 常用的libraries(modules)如下: 1)python运行时服务 * copy: copy模块提供了对复合(compound)对象(list,tuple,dict,custom class)进行浅拷贝和深拷贝的功能. * pickle: pickle模块被用来序列化python的对象到bytes流,从

Python基础5-常用模块

本节大纲 模块介绍 time &datetime模块 random os sys shutil shelve xml处理 yaml处理 configparser hashlib subprocess logging模块 re正则表达式 模块,就是实现某种或者某类功能代码的合集. 类似于函数式编程和面向过程编程,函数式编程完成一个功能,其他代码可以调用,提供了代码的重用性跟代码间的耦合.对于一个复杂的功能,可能需要多个函数才能完成,多个.py文件的代码集合就叫做模块. 如:os是系统相关的模块:f

Day5 - Python基础5 常用模块学习

Python 之路 Day5 - 常用模块学习 本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configparser hashlib subprocess logging模块 re正则表达式 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,

Python 基础之re 模块

Python 基础之大话 re 在使用re模块中主要会用到一下几个方法: re.match() #从头匹配一个字符串 re.search() #浏览全部字符串,匹配第一个符合规则的字符串 re.findall() #将匹配到的所有内容都放在一个列表中 #re.finditer() re.split() re.sub() 好,先简单的介绍一下re 模块中的基础知识: 1.元字符 . ^ $ * + ? {} []  | () \  , 2.\的功能:         #1.反斜杠后面跟元字符去除特

python基础,导入模块,if语句,while语句

python基础 python代码 变为字节码 变为机器码 最后执行执行'文件名.py'文件时出现的'文件名.pyc'文件为字节码 缓存机制 使用pycharm的时候在文件最开始添加下面这两行代码,中文部分为解释#!/user/bin/env python 用执行下面的命令#-*- coding:utf-8 -*- 使用的编码为UTF-8 为了不每次编写文件的时候都需要添加这两行代码,我们可以在pycharm中设置py文件的基础代码,就是创建py文件就会生成的代码 链接 import lib #

2015/9/15 Python基础(12):模块和包

模块是用来组织 Python 代码的方法,而包则是用来组织模块的. 当代码量很大时,我们一般会把代码分成几个有组织的代码段,然后每个代码段之间有一定的联系.代码单之间是共享的,所以Python允许调入一个模块,允许使用其他模块的属性利用之前的工作成果,实现代码重用.那些自我包含并且有组织的代码片段就是模块(module),将其他模块中属性附加到你的模块中的操作较导入(import) 模块是逻辑上的说法,而它们在物理层是一个个独立的文件,模块的文件名就是模块的名字加拓展名.py.与其他可以导入类的

[Python基础]009.os模块(1)

os模块(1) 介绍 os 常量 文件目录操作 文件属性操作 遍历文件夹 介绍 os模块是系统服务应用程序接口,是Python最常用的模块之一. os模块包含了对文件和文件夹的操作,操作系统相关的操作等. 以及os.path模块,主要处理路径操作. os 常量 os.linesep 换行符,Unix为 \n ,Win32为 \r\n os.sep 文件路径分隔符,Unix为 /,Win32为 \ os.pathsep 多个文件路径间的分隔符,Unix为 :,Win32为 ; os.curdir

python基础11 ---函数模块1

函数模块 一.函数模块的作用(为什么要有函数模块) 1.函数模块可以减少代码量 2.函数模块方便阅读 3.函数模块维护性强二.函数模块的本质以及调用方法 1.函数模块的本质就是一个.py结尾的文件,该文件内写入大量函数 2.必须用import来引用函数模块,在调用函数模块时必须以"模块名.函数名"来调用函数模块中的函数. 3.有的时候我们只需要用到模块中的某个函数,也可以用"from 模块名 improt 函数1,函数2"的方式来引用该模块,但只是一次引用,不建议使

python基础14 ---函数模块5(模块和包)

模块与包 一.模块 1.模块是怎么诞生的. 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护.为了编写可维护的代码,我们把很多函数分组,分别放到 不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在Python中,一个.py文件就称之为一个模块(Module). 2.模块的作用. 提高了代码的可维护性.其次是编写代码不必从零开始.当一个模块编写完毕,就可以被其他地方引用.我们在编写程序的时候,也经常引用其他模块,

python基础五:模块

模块&包 模块(Module)的概念:在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里的代码会越来越长,维护也越来越不易.为了编写可维护的代码,我们把很多函数分组,分别放在不同的文件里,很多语言都采用这个组织代码的方式,在python中一个.py文件就称之为模块.使用模块的好处:大大提高代码的可维护性.其次,编写代码不必从零开始.当一个模块编写完毕,就可以被其他地方引用.我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块. 所以,模块一共三种: p