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. 给string定义一个扩展方法

    创建一个 static 的类,并且里面的方法也必须是static的,第一个参数是被扩展的对象,必须标注为this,使用时,必须保证namespace using进来了. 实例: using Syste ...

  2. vue-loader+webpack配置项目流程

    前提:安装了node.js与npm 1.建立一个npm项目 新建项目文件夹,打开终端,将路径移动至此文件夹,初始化输入 npm init 按照提示输入项目名称,描述,作者等信息(可回车跳过) 成功创建 ...

  3. Python中很少见的用法

    print(*range(10)) # 自动解开可迭代的对象

  4. js获取当前页面url信息

    <html> <head> <meta charset="utf-8" /> <title></title> <s ...

  5. Vuex的基本原理与使用

    我们需要知道 vue 是单向数据流的方式驱动的 什么是vuex? 为什么要使用vuex ? - 多个视图依赖于同一状态. - 来自不同视图的行为需要变更同一状态. vuex 类似Redux 的状态管理 ...

  6. Vue使用Axios实现http请求以及解决跨域问题

    Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中.Axios的中文文档以及github地址如下: 中文:https://www.kancloud.cn/y ...

  7. zookeeper系列(三)zookeeper的使用--开源客户端

    作者:leesf    掌控之中,才会成功:掌控之外,注定失败, 原创博客地址:http://www.cnblogs.com/leesf456/ 奇文共欣赏,大家共同学习进步. 一.前言 上一篇博客已 ...

  8. Rust格式化输出

    打印操作由 https://doc.rust-lang.org/std/fmt/ 里面所定义的一系列宏来处理,包括: format!:将格式化文本写到字符串(String).(译注:字符串是返 回值不 ...

  9. (九)C语言之scanf

  10. Mybatis不使用Spring框架(Druid)

    1.Mysql database CREATE TABLE mockrecord (id INT(10) unsigned PRIMARY KEY NOT NULL COMMENT 'mock记录编号 ...