IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python:正则表达式 -> 正文阅读

[Python知识库]python:正则表达式

针对字符串提炼出需要的部分;

正则表达式(或RE)是一种小型的,高度专业化的编程语言,(在python中)它内嵌在python中,并通过re模块实现。正则表达式模式被译为一系列的字节码,然后由用C编写的匹配引擎执行;

一、元字符

使用说明案例说明
.除换行符以外的任意一个符号;re.s模式也可以使.匹配包括换行在内的所有字符
^匹配字符串的开头;在字符集[]中使用表示取反的意思
$匹配字符串的结尾
*匹配0个或多个表达式,默认贪婪模式
ret = re.findall('hello a*','hello aaaab')
print(ret)
匹配‘hello a’,a可以0个或多个;贪婪模式取最长的a;
结果为:
+匹配1个或多个表达式。默认贪婪模式
匹配0个或1个由前面的正则表达式,默认非贪婪模式
ret = re.findall('hello a?','hello aaaaab')
print(ret)
匹配0个或1个,大于1个时,结果输出1个;
结果为['hello a']
{n,m}匹配n到m次由前面的正则表达式定义的片段,贪婪模式;当花括号中只有一个值{n}时,表示匹配n次
[]字符集,多个字符选其一,[^...]取反;[1-9]表示匹配从1到9的范围
|匹配做正则表达式或右边正则表达式
()匹配括号内的表达式,也表示一个组;仅输出括号中的字符
\转义符

使用案例?

ret = re.findall('hello .{5}', 'hello python,hello world,hello re,hello sxm')
print(ret)

# ['hello pytho', 'hello world', 'hello re,he']

ret = re.findall('hello .{2,5}', 'hello python,hello world,hello re')
print(ret)

# ['hello pytho', 'hello world', 'hello re']

ret = re.findall('hello .{5},', 'hello python,hello world,hello re')
print(ret)

# ['hello world,']

ret = re.findall('hello .*,', 'hello python,hello world,hello re,hello sxms')
print(ret)

# ['hello python,hello world,hello re,']

ret = re.findall('hello .*?,', 'hello python,hello world,hello re,hello sxms')
print(ret)

# 使用最广,?在此处表示去除*的贪婪匹配;结果为['hello python,', 'hello world,', 'hello re,']


ret = re.findall('hello (.*?),', 'hello python,hello world,hello re,hello sxms')
print(ret)

# 结果为['python', 'world', 're']



ret = re.findall('[1-9]', 'ab1si3d89j0')
print(ret)

# ['1', '3', '8', '9']

ret = re.findall('[1-9]+', 'ab1si3d89j0')
print(ret)

#匹配连续的字符集,结果为['1', '3', '89']

#取以com或cn结尾的域名;?:在此处表示取消()的优先提炼权;结果为['www.baidu.com', 'www.jd.cn']
ret = re.findall('www\.[a-zA-Z]+\.(?:com|cn)', 'www.baidu.com,www.python.org,www.jd.cn')
print(ret)


?

使用说明
\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匹配一个特殊字符边界,比如空格 ,&,#等

二、正则方法

使用说明
re.search(re,str)只能匹配第一个符合匹配规则的对象
re.match(re,str)以re匹配规则匹配字符串为开头的内容,相当于在re.search()的基础上增加了^的功能
re.compile(re)编译匹配规则
re.split()
re.sub()正则替换
import re

ret = re.search('\d+', 'abc12dje')
print(ret)  #匹配后的第一项的对象
print(ret.group())  #匹配后的第一项的字符串

# ?P<name>为给组起名,组名为name
ret = re.search('www\.(?P<name>[a-zA-Z]+)\.(com|cn)', 'www.baidu.com,www.python.org,www.jd.cn')
print(ret)
print(ret.group())
print(ret.group(1))  #取()组的组引号为1的字符串
print(ret.group(2))
print(ret.group('name'))  #取组名为name的字符串

ret = re.match('\d+', '67dke12i=24nk')
print(ret)
print(ret.group())

comp = re.compile('\d+')
ret = comp.search('224425fv')
print(ret.group())

# split分割
ret = re.split('\d+', 'alvin34zhangsan45lisi12')
print(ret)
#结果为:['alvin', 'zhangsan', 'lisi', '']

#sub替换
ret = re.sub(' .*?,', ' sxm,', 'hello python,hello world,hello re,')
print(ret)

ret = re.sub('(hello )(.*?)(,)', '\\1sxm\\3,', 'hello python,hello world,hello re, JS,')
print(ret)

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-12-13 12:46:15  更:2021-12-13 12:48:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 4:48:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码