Python正则表达式-常用函数的基本使用

枫铃3年前 (2021-09-30)Python253

常用函数有

re.match()、re.search() 、re.sub()compile()、findall()、finditer()、split()

re.match() 匹配字符串开头,常用来判断数据是否满足我的正则要求。

成功返回一个match对象,不成功返回空。

>>> import re
>>> rc = re.compile(r"www.+")
>>> rc.match('www.com wxw.cn')
<re.Match object; span=(0, 14), match='www.com wxw.cn'>
>>> rc.match('wxw.cn www.com')
>>>

re.search() 匹配整个字符串,判断数据时候包含我的正则数据

'''
Python大型免费公开课,适合初学者入门
加QQ群:579817333 获取学习资料及必备软件。
'''
>>> rc.search('wxw.cn www.com')
<re.Match object; span=(7, 14), match='www.com'>
>>> rc.search('wxw.cn www.com wxw.org www.cn')
<re.Match object; span=(7, 29), match='www.com wxw.org www.cn'>
>>>

作比较

import re

st = 'Monday Tuesday Wednesday Thursday Friday Saturday Sunday'
rc = r'sunday'

#match 进行匹配
rcm = re.match(rc,st,re.I)
#re.I忽略大小写
if rcm:
    print(rcm.group())
else:
    print("match don't is Sunday")

#search 进行匹配查找
rcs = re.search(r'sunday',st,re.I)
if rcs:
    print(rcs.group())
else:
    print("search don't is Sunday")

re.sub() 检索和替换

import re

#re.sub(pattern, repl, string, count=0, flags=0)

st = '这#是#一#个#很*寂*寞*的#天#,#下#着#有#些#伤@心@的@雨@'

#将这个字符串里的特殊符号替换成空,也就是删掉的意思。
#定义正则
pat = r'[#\*@]'

music = re.sub(pat,'',st)
print(music)
import re

#re.sub(pattern, repl, string, count=0, flags=0)

#repl 也可以是一个函数

str ='主板 cpu computer 电池 mouse 键盘'
pat = r'[a-z]'
#将str中的小写英文字母全都转换为大写

def chupper(matched):
    value = matched.group()
    return value.upper()

res = re.sub(pat,chupper,str)
print(res)

compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。

'''
Python大型免费公开课,适合初学者入门
加QQ群:579817333 获取学习资料及必备软件。
'''
>>> import re
>>> pac = re.compile('[a-z]',re.I)
>>> st = 'A1b2c3d4e5f7g8h9i0g1k2l3m4n5'
>>> m = pac.match(st)
>>> m
<re.Match object; span=(0, 1), match='A'>
>>> m.group()
'A'
>>> m.start()
0
>>> m.end()
1
>>> m.span()
(0, 1)
>>>

findall

在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。

注意: match 和 search 是匹配一次 findall 匹配所有。

findall(string[, pos[, endpos]])

re.finditer

和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。

'''
Python大型免费公开课,适合初学者入门
加QQ群:579817333 获取学习资料及必备软件。
'''
>>> rec = re.compile(r'\D')
>>> iters = rec.finditer('abcd1234efg567hig')
>>> for value in iters:
    print(value.group(),end="")

abcdefghig
>>>

split 方法按照能够匹配的子串将字符串分割后返回列表,它的使用形式如下:

re.split(pattern, string[, maxsplit=0, flags=0])

>>> rec = re.compile(r'[.]')
>>> st = '192.168.1.1'
>>> recs = rec.split(st)
>>>
>>> recs
['192', '168', '1', '1']
>>>

flags:

修饰符描述re.I使匹配对大小写不敏感re.L做本地化识别(locale-aware)匹配re.M多行匹配,影响 ^ 和 $re.S使 . 匹配包括换行在内的所有字符re.U根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.re.X该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。

相关文章

利用python同步windows和linux文件

写python脚本的初衷,每次在windows编辑完文件后,想同步到linux上去,只能够登录服务器,...

爬虫基本原理

爬虫基本原理 一、爬虫是什么? 百度百科和维基百科对网络爬虫的定义:简单来说爬虫就是抓取目标网站内容的工具,一般是根据定义的行...

Django 函数和方法的区别

函数和方法的区别 1、函数要手动传self,方法不用传 2、如果是一个函数,用类名去调用,如果是一个方法...

Django 知识补漏单例模式

单例模式:(说白了就是)创建一个类的实例。在 Python 中,我们可以用多种方法来实现单例模式&#x...

Django基础知识MTV

Django简介 Django是使用Python编写的一个开源Web框架。可以用它来快速搭建一个高性能的网站。 Django也是一个MVC框架。但是在Dj...

Python mysql 索引原理与慢查询优化

一 介绍 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。