python-1:正则表达式(基础知识点)
1、简单匹配:
- \d →匹配一个数字
- \w →匹配一个数字或字母
- \s →匹配一个空格(包括tab等空白符)
- . →匹配任意字符
- * →匹配任意个字符(包括0个)
- + →匹配至少一个字符
- {n}→匹配n个字符
- {n,m}→匹配n到m个字符
2、进阶匹配:
- [] →表示范围,如[0-9a-zA-Z]可以匹配一个数字或一个字母
- []+ →表示匹配至少一个
- []* →表示匹配任意个,如[0-9a-zA-Z]*可以匹配任意个数字或任意个字母
- []{n,m}→表示匹配n到m个
- A|B →表示既可以匹配A,也可以匹配B
- ^ →表示匹配的开头
- $ →表示匹配的结束
- () →表示分组
3、re模块:
最基本的使用:
import re
re.match(r'正则表达式','待匹配的字符串')
#匹配成功,返回一个Match对象。不然,返回None
编译后再匹配:
import re
re_compile = re.compile(r'正则表达式')
re.match('待匹配字符串')
4、其他用途(待补充):
- 匹配分割字符串,re.split(),如去除空格与一些其他的符号:
# 去除空格
import re
a_str = 'a b c'
a_str_out = re.split(r'\s+', a_str)
print(a_str_out)
#['a','b','c']
b_str = 'a b , c ,;d'
b_str_out = re.split(r'[\s\,\;]+', b_str)
#['a','b','c','d']
- 分组,match.group(),group(0)是原始字符,group(1),group(2)...对应后续的每一个分组()
import re
a_str = '111-11111'
a_match = re.match(r'(\d{3})-(\d{5})',a_str)
a_match.group(0)
# '111-11111'
a_match.group(1)
# '111'
a_match.group(2)
# '11111'
5、需要注意的
- 为了不被字符串转义的问题困扰,建议使用Python的r前缀。即r''
- 正则表达式的匹配是贪婪匹配。实现非贪婪匹配用?
对于 120300,r'^(\d+)(0*)$' 匹配后的分组为(‘120300’,‘’)
而 r'^(\d+?)(0*)$' 匹配后的分组为('1203', '00')
\d+会尽可能多的匹配,\d+?会尽可能少的匹配
看了廖老师的正则表达式模块后,因为经常容易忘记一些语句,所以写下博文方便日后回顾。感谢廖老师!
参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017639890281664
python-1:正则表达式(基础知识点)的更多相关文章
- python里正则表达式基础及注意事项
感觉正则匹配是一件很酷的事,用得好的话可以极大地提高编程效率.虽然在html中BeautifulSoup更好用一些,但有时候还是需要使用正则匹配.所以就此做一些学习和使用过程中的笔记. python有 ...
- Python爬虫-正则表达式基础
import re #常规匹配 content = 'Hello 1234567 World_This is a Regex Demo' #result = re.match('^Hello\s\d\ ...
- Python之部分基础知识点汇总
1.三元运算(又称三目运算) 三元运算(又称三目运算),简单条件语句的简写 if a<b: A else: B等价于:A if a<b else B 2.
- 正则表达式基础---转自 Python正则表达式指南 前边
1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...
- python正则表达式基础篇
1.正则表达式基础 1.1简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大 ...
- python正则表达式基础,以及pattern.match(),re.match(),pattern.search(),re.search()方法的使用和区别
正则表达式(regular expression)是一个特殊的字符序列,描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子字符串. 将匹配的子字符串替换或者从某个字符串中取出符合某个条件 ...
- Python正则表达式-基础
Python正则表达式-基础 本文转载自昔日暖阳,原文地址:http://www.osheep.cn/4806.html python使用正则,需要先引入re模块 import re 匹配符 单个字符 ...
- Python正则表达式基础
1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...
- Python正则表达式基础指南
1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...
- Python爬虫入门有哪些基础知识点
1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...
随机推荐
- JVM-GC算法(二)-复制算法&&标记整理算法
这次我和各位分享GC最后两种算法,复制算法以及标记/整理算法.上一篇在讲解标记/清除算法时已经提到过,这两种算法都是在此基础上演化而来的,究竟这两种算法优化了之前标记/清除算法的哪些问题呢? 复制算法 ...
- redis 提供 6种数据淘汰策略
淘汰策略的原因 在 redis 中,允许用户设置最大使用内存大小 server.maxmemory,在内存限定的情况下是很有用的.譬如,在一台 8G 机子上部署了 4 个 redis 服务点,每一个服 ...
- TCP路径MTU发现
路径MTU 当在同一个网络上的两台主机互相通信时,该网络的MTU是非常重要的.当时如果两台主机之间的通信要通过多个网络,那么每个网络的链路层就可能有不同的MTU.重要的不是两台主机所在网络的MTU,而 ...
- SRS之播放推流视频
1. 综述 首先,推流直播的配置文件如下: # rtmp.conf listen 1935; max_connections 1000; daemon off; srs_log_tank consol ...
- HBuilder开发MUI web app溢出页面上下无法滚动问题
因为没有对页面初始化,所以页面溢出部分不会显示,要解决此问题需要加上下面代码: JS代码: (function($){$(".mui-scroll-wrapper").scroll ...
- 在jenkins打开roboframework报告:Opening Robot Framework report failed
来源自: https://blog.51cto.com/icestick8586/1884615 --------------------------------------------------- ...
- 判断List是否为空的问题
今天公司安排给页面调试Bug,感觉公司人员写的判断判断List是否为空存在一定的问题,公司判断是list!=null这是完全不对的,这只会判断是否有list对象.如果为空,他也会执行if(list!= ...
- 2.HDFS和HA
1.HDFS简介 DataNode NameNode SecondaryNameNode HDFS文件权限 2.HDFS小结 3.HDFS交互操作 4.HDFS编程访问接口
- 微信小程序之条件判断
前文: 今天踩了一下午的坑,但是确实很简单的问题. 我说一下需求:扫描商品的二维码,从而判断,同一个二维码不可多次扫描: 点击扫一扫 会在灰色区域展示 扫描的商品信息,比如商品名称,商品码等,但是我们 ...
- JS判定数据类型
1.typeof 我们能够使用typeof判断变量的身份,判断字符串得到string,数字和NaN得到number,函数会得到function等,但是判断数组,对象和nu ...