python基础-re正则
一:什么是正则?
正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。或者说:正则就是用来描述一类事物的规则。
(在Python中)它内嵌在Python中,并通过 re 模块实现。正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹配引擎执行。
.代表任意字符:print(re.findall('h...o$','egon 123 + _ - *hello'))
?代表?左边的字符出现0次或者1 :print(re.findall('ab?','a ab abb abbbb a1b'))
*代表*号左边的字符出现0次或者无穷次:print(re.findall('ab*','a ab abb abbbb a1b'))
+代表+号左边的字符出现1次或者无穷次:print(re.findall('ab+','a ab abb abbbb a1b'))
{m,n}代表左边的字符出现m次到n次::print(re.findall('ab{0,1}','a ab abb abbbb a1b'))无穷次可不写n
.*代表贪婪匹配:print(re.findall('a.*b','xxxxxxy123a123b456b'))
.*?代表非贪婪匹配:print(re.findall('a.*?b','xxxxxxy123a123b456b'))
|代表或者:#默认留组中的内容 print(re.findall('compan(y|iess)','Too many companiess have gone bankrupt, and the next one is my company'))
#:?匹配成功后不留组中取到的内容留取到的全部内容print(re.findall('compan(?:y|iess)','Too many companiess have gone bankrupt, and the next one is my company'))
[]代表取中括号内任意的一个:print(re.findall('a[a-z]b','axb azb aAb alb a-b a+b'))中括号中开头加^表示取反
二:re模块的其他方法:
re.search:只匹配成功一次就返回print(re.search('a[^-+*/]b','axb azb aAb a1b a-b a+b').group())
re.match:从开头取,且只匹配一次,取不到返回None:print(re.match('a[0-9]b','axb azb aAb a1b a-b a+b'))
re.split:实现切割:print(re.split(':','root:x:0:0::/root:/bin/bash',maxsplit=1))
re.sub代表替换:print(re.sub('root','admin','root:x:0:0::/root:/bin/bash',1))
re.compile:obj=re.compile('a\d{2}b') print(obj.findall('a12b a123b a12345b abbb'))
python基础-re正则的更多相关文章
- python基础知识---正则
一.python正则简介 python的re模块,让python能够支持perl正则 perl正则的字符集("." "[abc]" "(abc) ...
- Python基础-re正则模块
一.简介: 正则表达式:是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过re模块实现,正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行. 二.字 ...
- Python 基础之正则之二 匹配分组,正则相关函数及表达式修饰符
四.匹配分组 [元字符] 分组符号 a|b 匹配字符a 或 字符b (如果两个当中有重合部分,把更长的那个放前面) (ab) 匹配括号内的表达式 ,将()作为一个分组 num 引用分组 ...
- Python 基础之正则之一 单字符,多字符匹配及开头结尾匹配
一.正则表达式之单个字符匹配 格式:lst = re.findall(正则表达式,要匹配的字符串)预定义字符集 匹配内容 .匹配任意字符,除了换行符\n \d匹配数字 \D匹配非数字 \w匹配字母或数 ...
- Python基础教程【读书笔记】 - 2016/7/31
希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第十波:第10章 充电时刻 Python语言的核心非常强大,同时还提供了更多值得一试的工具.Python的标准安装包括 ...
- python基础教程笔记—即时标记(详解)
最近一直在学习python,语法部分差不多看完了,想写一写python基础教程后面的第一个项目.因为我在网上看到的别人的博客讲解都并不是特别详细,仅仅是贴一下代码,书上内容照搬一下,对于当时刚学习py ...
- Python基础-week05
本节大纲:Author:http://www.cnblogs.com/Jame-mei 模块介绍 time & datetime模块 random os sys shutil json &am ...
- python基础篇实战
1. 判断下面的结果 # 1. 判断下面的结果 # 1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 pri ...
- Python基础(协程函数、内置函数、递归、模块和包)-day05
写在前面 上课第五天,打卡: 凭着爱,再回首: 一.协程函数(生成器:yield的表达式形式) 1.yield 的语句形式: yield 1 - 这种方式在 Python基础(函数部分)-day04 ...
随机推荐
- Jquery中attr与prop的区别详解
prop()函数的结果: 1.如果有相应的属性,返回指定属性值. 2.如果没有相应的属性,返回值是空字符串. attr()函数的结果: 1.如果有相应的属性,返回指定属性值. 2.如果没有相应的属性, ...
- leetcode-973-最接近原点的K个点
题目描述: 可参考:题215 方法一:排序 class Solution: def kClosest(self, points: List[List[int]], K: int) -> List ...
- Spring+Mybatis常见问题随笔
错误1:无法绑定指定方法 异常堆栈:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 原因 ...
- 将maven项目打成war包
//修改成war包 <packaging>war</packaging> //plugins中添加新的配置 <build> <plugins> < ...
- HTML <body>的常用属性
bgColor : 网页背景色 如 <body bgColor="red"> Background : 网页背景图片的地址 如 <body background ...
- uploadify上传附件 点击保存无效 切F12就可以正常保存
感谢 这篇文章 https://blog.csdn.net/koala25/article/details/70230046 uploadify上传附件 点击保存无效 切F12就可以正常保存了, ...
- Java 高级面试知识点汇总!
1.常用设计模式 单例模式:懒汉式.饿汉式.双重校验锁.静态加载,内部类加载.枚举类加载.保证一个类仅有一个实例,并提供一个访问它的全局访问点. 代理模式:动态代理和静态代理,什么时候使用动态代理. ...
- spring boot中使用javax.validation以及org.hibernate.validator校验入参
这里springboot用的版本是:<version>2.1.1.RELEASE</version> 自带了hibernate.validator,所以不用添加额外依赖 1.创 ...
- python语句结构(控制语句与pass语句)
python语句结构(控制语句和pass语句) break-跳出循环:语句可以跳出for和while语句的循环体.如果你从for和while循环中终止,任何对应循环的else语块均终止 continu ...
- printk函数速率限制
如果你不小心, 你会发现自己用 printk 产生了上千条消息, 压倒了控制台并且, 可能地, 使系统日志文件溢出. 当使用一个慢速控制台设备(例如, 一个串口), 过量的消息速率也 能拖慢系统或者只 ...