python基础学习(三)--正则表达式
正则表达式基础
一:+ 、* 、?的用法
xiao+ye,+ 号前面的字符出现1次或多次,如可匹配xiaoye,xiaoooooye;
xiao*ye,* 号前面的字符出现0次、1次或多次,如可匹配xiaye,xiaoye,xiaoooooye;
xiao?ye ,? 问号前面的字符出现0次或1次,如可匹配xiaye,xiaoye。
?也可以用来实现非贪婪匹配,如:
<H1> This is a H1 Title! </H1>
对上述代码段,若使用+或*为贪婪匹配,即尽可能匹配多的字符:
<.*> 会匹配整段:<H1> This is a H1 Title! </H1>
通过在 *、+ 或 ? 限定符之后放置 ?,使该表达式从"贪心"表达式转换为"非贪心"表达式或者最小匹配
<.*?> 则只匹配到:<H1>
. 匹配除了\n换行符之外的任一单字符
二:\number (eg. \1 \2 .... \99) 的用处
对一个正则表达式模式或部分模式两边添加圆括号将导致相关匹配存储到一个临时缓冲区中,所捕获的每个子匹配都按照在正则表达式模式中从左到右出现的顺序存储。缓冲区编号从 1 开始,最多可存储 99 个捕获的子表达式。每个缓冲区都可以使用 \n 访问,其中 n 为一个标识特定缓冲区的一位或两位十进制数。可以使用非捕获元字符 ?:、?= 或 ?! 来重写捕获,忽略对相关匹配的保存。
反向引用的最简单的、最有用的应用之一,是提供查找文本中两个相同的相邻单词的匹配项的能力。以下面的句子为例:
Is is the cost of of gasoline going up up
查找重复的单词:
var str = "Is is the cost of of gasoline going up up";var patt1 = /\b([a-z]+) \1\b/ig; document.write(str.match(patt1));
捕获的表达式,正如 [a-z]+ 指定的,包括一个或多个字母。正则表达式的第二部分是对以前捕获的子匹配项的引用,即,单词的第二个匹配项正好由括号表达式匹配。\1 指定第一个子匹配项。
单词边界元字符确保只检测整个单词。否则,诸如 "is issued" 或 "this is" 之类的词组将不能正确地被此表达式识别。
正则表达式后面的全局标记 g 指定将该表达式应用到输入字符串中能够查找到的尽可能多的匹配。
表达式的结尾处的不区分大小写 i 标记指定不区分大小写。
多行标记指定换行符的两边可能出现潜在的匹配。
输出结果为: Is is,of of,up up
三:元字符含义大全
http://www.runoob.com/regexp/regexp-metachar.html
四:正则表达式在线测试及常见使用正则表达式
https://c.runoob.com/front-end/854
Python3中的正则表达式
一:re模块
# span()函数 返回一个元组,表示(start, end)
re.match(pattern, string, flags=0) :尝试从字符串的起始位置匹配一个模式,如果不是从起始位置匹配成功的话,match()就返回none
re.search(pattern, string, flags=0):扫描整个字符串并返回第一个成功的匹配。
这两个方法的参数一样:
- pattern : 匹配的正则表达式。
- string : 要匹配的字符串。
- flags : 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写(re.I),多行匹配(re.M)等等。
注意两者的区别。
re.sub(pattern, repl, string, count=0):用于替换字符串中的匹配项。
参数:
- pattern : 正则中的模式字符串。
- repl : 替换的字符串,也可为一个函数。
- string : 要被查找替换的原始字符串。
- count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。
python基础学习(三)--正则表达式相关推荐
- python爬虫正则表达式实例-python爬虫学习三:python正则表达式
python爬虫学习三:python正则表达式 1.正则表达式基础 a.正则表达式的大致匹配过程: 1.依次拿出表达式和文本中的字符比较 2.如果每一个字符都能匹配,则匹配成功:一旦有匹配不成功的字符 ...
- Python基础学习笔记三
Python基础学习笔记三 print和import print可以用,分割变量来输出 import copy import copy as co from copy import deepcopy ...
- python基础学习_转行零基础该如何学习python?很庆幸,三年前的我选对了
这似乎是一个如荼如火的行业,对于一直在思考着转行的我,提供了一个不错的方向. 这个行业当然就是python程序员,真正开始决定转行是在24岁的时候,到现在已经有三年多了,我从零开始,每天用业余两个小时 ...
- Python基础学习笔记之(二)
Python基础学习笔记之(二) zouxy09@qq.com http://blog.csdn.net/zouxy09 六.包与模块 1.模块module Python中每一个.py脚本定义一个模块 ...
- Python基础学习笔记之(一)
Python基础学习笔记之(一) zouxy09@qq.com http://blog.csdn.net/zouxy09 前段时间参加微软的windows Azure云计算的一个小培训,其中Pytho ...
- 8.Python基础学习笔记day8-正则表达式、网络编程、进程与线程
8.Python基础学习笔记day8-正则表达式.网络编程.进程与线程 一.正则表达式 ''' 1. [1,2,3,4]中任意取3个元素排列: A43 = 4x3x2 = 24itertools.pe ...
- python自学用什么书好-适合python基础学习的好书籍
分享几本python基础学习的书籍给大家 <Python编程:从入门到实践> 内容简介:本书是一本针对所有层次的Python 读者而作的Python 入门书.全书分两部分:第一部分介绍用P ...
- Python基础(三)--序列
Python基础(三)--序列 1 序列相关的概念 1.1 什么是序列 序列是一种可迭代对象,可以存储多个数据,并提供数据的访问. 序列中的数据称为元素,Python内置的序列类型有:列表(list) ...
- 【Python基础学习】基本数据结构:列表、元组、栈、字典、集合与队列
[Python基础学习]基本数据结构:列表.元组.栈.字典.集合与队列 Python的基本数据结构中,包含了列表.元组等一系列数组式数据结构,但各个结构各有不同.因此单独列出来,分析相同与不同 列表( ...
- python基础学习的书籍
分享几本python基础学习的书籍给大家 <Python编程:从入门到实践> <Python编程:从入门到实践> 书籍详情链接 内容简介:本书是一本针对所有层次的Python ...
最新文章
- ARM 发布新一代 GPU 架构,还有一个机器学习处理器
- Swift学习------常量与变量
- HDU 2066 一个人的旅行
- 进程间通信——匿名管道
- C语言读入文件全部内容的方法
- MapReduce进阶:多MapReduce的链式模式
- PHP的Composer:命令 符号 区别
- 利用虚拟硬盘(把内存当作硬盘)来提高数据库的效率(目前只针对SQL Server 2000)可以提高很多...
- flink下载以及兼容性问题
- JavaScript中“javascript:void(0) ”是什么意思
- 细谈Web框架设计与实现
- ICLR 2021 | 腾讯 AI Lab 入选论文
- oracle菜鸟学习之 复杂的更新语句使用
- 华为机试HJ87:密码强度等级
- Hadoop安装详细教程 单机版
- 康末otdr测试软件丢失,利用OTDR快速定位光缆线路故障-测试测量-与非网
- 解决读取文件乱码问题
- Zotero 5.0 + 坚果云同步盘 + papership 配置教程
- ae去闪插件deflicker使用_ae去闪烁插件Flicker Free怎么用-ae去闪烁插件Flicker Free的使用教程 - 河东软件园...
- java期末考试复习题_JAVA期末考试复习试题