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:正则表达式(基础知识点)的更多相关文章

  1. python里正则表达式基础及注意事项

    感觉正则匹配是一件很酷的事,用得好的话可以极大地提高编程效率.虽然在html中BeautifulSoup更好用一些,但有时候还是需要使用正则匹配.所以就此做一些学习和使用过程中的笔记. python有 ...

  2. Python爬虫-正则表达式基础

    import re #常规匹配 content = 'Hello 1234567 World_This is a Regex Demo' #result = re.match('^Hello\s\d\ ...

  3. Python之部分基础知识点汇总

    1.三元运算(又称三目运算) 三元运算(又称三目运算),简单条件语句的简写    if a<b: A    else: B等价于:A if a<b else B 2.

  4. 正则表达式基础---转自 Python正则表达式指南 前边

    1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...

  5. python正则表达式基础篇

    1.正则表达式基础 1.1简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大 ...

  6. python正则表达式基础,以及pattern.match(),re.match(),pattern.search(),re.search()方法的使用和区别

    正则表达式(regular expression)是一个特殊的字符序列,描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子字符串. 将匹配的子字符串替换或者从某个字符串中取出符合某个条件 ...

  7. Python正则表达式-基础

    Python正则表达式-基础 本文转载自昔日暖阳,原文地址:http://www.osheep.cn/4806.html python使用正则,需要先引入re模块 import re 匹配符 单个字符 ...

  8. Python正则表达式基础

    1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...

  9. Python正则表达式基础指南

    1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...

  10. Python爬虫入门有哪些基础知识点

    1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...

随机推荐

  1. js上传图片获取原始宽高

    以vue上传图片为例: <template> <div> <input type="file" @change="uploadFile($e ...

  2. 【转】python 输入一个时间,获取这个时间的下一秒

    原文:https://blog.csdn.net/l_d_56/article/details/84832198 输入一个时间,获取这个时间的下一秒 PS:下面代码使用于 python 2.7 tim ...

  3. DP&图论 DAY 6 上午

    DP&图论  DAY 6  上午 双连通分量 从u-->v不存在必经边,点 点双连通分量 边双连通分量 点/边双连通分量缩点之后变成一个树 找连通块的时候不越过割点或者桥 P3469 [ ...

  4. k8s部署01-----what is k8s?

    简介 1.Kubernetes代码托管在GitHub上:https://github.com/kubernetes/kubernetes/. 2.Kubernetes是一个开源的,容器集群管理系统,K ...

  5. LC 877. Stone Game

    Alex and Lee play a game with piles of stones.  There are an even number of piles arranged in a row, ...

  6. 【React自制全家桶】七、React实现ajax请求以及本地数据mock

    一.下载axios插件 yarn add axios 二.React的ajax请求代码如何放置 建议放置在生命周期函数之componentDidMount()中 三.ajax之get请求 axios. ...

  7. AXIS 1.4 自定义序列化/反序列化类

    axis1.4的CalendarDeserializer 使用的时区是GMT,导致日期显示不准确 private static SimpleDateFormat zulu = new SimpleDa ...

  8. linux添加用户所在群组

    etc目录下面有两个文件一个passwd一个grouppasswd里gid是主组,其他组是扩展组,扩展组在/etc/group里描述.useradd username如果不指定,默认创建一个与uid相 ...

  9. kubernetes排错系列:(二)、运行很久的kubernetes集群,创建出来的pod都是pending状态

    1.查看pod信息 # 查看pod 报错信息kubectl get pods发现pod的ip没有 生成,也没有分配到某个node节点 # 查看pod详细时间kubectl describe pods发 ...

  10. ubuntu源与常用python配置pip源(win)、pip常用命令

    pip常用命令 ubuntu更新系统源 首先备份/etc/apt/sources.list mv /etc/apt/sources.list /etc/apt/sources.list.bak 然后下 ...