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.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...
随机推荐
- 给string定义一个扩展方法
创建一个 static 的类,并且里面的方法也必须是static的,第一个参数是被扩展的对象,必须标注为this,使用时,必须保证namespace using进来了. 实例: using Syste ...
- vue-loader+webpack配置项目流程
前提:安装了node.js与npm 1.建立一个npm项目 新建项目文件夹,打开终端,将路径移动至此文件夹,初始化输入 npm init 按照提示输入项目名称,描述,作者等信息(可回车跳过) 成功创建 ...
- Python中很少见的用法
print(*range(10)) # 自动解开可迭代的对象
- js获取当前页面url信息
<html> <head> <meta charset="utf-8" /> <title></title> <s ...
- Vuex的基本原理与使用
我们需要知道 vue 是单向数据流的方式驱动的 什么是vuex? 为什么要使用vuex ? - 多个视图依赖于同一状态. - 来自不同视图的行为需要变更同一状态. vuex 类似Redux 的状态管理 ...
- Vue使用Axios实现http请求以及解决跨域问题
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中.Axios的中文文档以及github地址如下: 中文:https://www.kancloud.cn/y ...
- zookeeper系列(三)zookeeper的使用--开源客户端
作者:leesf 掌控之中,才会成功:掌控之外,注定失败, 原创博客地址:http://www.cnblogs.com/leesf456/ 奇文共欣赏,大家共同学习进步. 一.前言 上一篇博客已 ...
- Rust格式化输出
打印操作由 https://doc.rust-lang.org/std/fmt/ 里面所定义的一系列宏来处理,包括: format!:将格式化文本写到字符串(String).(译注:字符串是返 回值不 ...
- (九)C语言之scanf
- Mybatis不使用Spring框架(Druid)
1.Mysql database CREATE TABLE mockrecord (id INT(10) unsigned PRIMARY KEY NOT NULL COMMENT 'mock记录编号 ...