Pyhton入门 笔记 第三天 正则表达式与JSON
一,判断字符中是否包含指定的单词
a='C|C++|Json|Java|C#|Python|javascript'
print('Python' in a) #方式一
print(a.index('Pyghon')>-1) #方式二
re.findall('Python',a) #方式三,前提要先引入 import re
二,提取字符中的数字
import re #引入re模块
a='C0C++2C#3java8Python7javascirpt'
r=re.findall('\d',a) #\d在正则中代表数字.
print(r)
注,同上实例,一例中'Python'为普通字符,二例中'\d'为元字符。
三,在字符中找到多个指定的单词
import re
a='abc,acc,adc,afc,aec,agc,ahc' #在此字符中找出acc,afc
r=re.findall('a[cf]c',a) #普通字符a和c做为定界字符,c和f为元字符。此例中如果^a[cf]c作为正则,表示在字符a中找出除去acc 和afc的所有单词。再如果c到f为顺序的字符可写为[c-f]。
print(r)
四,概括字符集
import re #引入re模块
a='C0C++2C#3java8Python7javascirpt'
r=re.findall('\d',a) #\d在正则中代表数字.
print(r)
注,此例与例二同,但也可以使用例三的方式来打印出来
r=re.findall('[0-9]',a) #如果想要打印出非数字的集合为:r=re.findall('[^0-9]',a)
print(r)
五,匹配所有数字和字母
import re
a='C0C++2C#3java8Python7javascirpt*&%$'
r=re.findall('\w',a) #'\w'只能匹配也有数字和字母,但特殊字符#*$&%等是不可以匹配到的。如果用字符集来表示'\w'可以用'[A-Za-z0-9_]'表示.注下划线'_'是可以匹配到的。
print(r)
六,匹配特殊字符
import re
a='C0C++2C#3java8Python7javascirpt*&%$'
r=re.findall('\W',a) #与例五不同,这里匹配特殊字符是使用大写的'\W'来表示。
print(r)
注,'\W'也可以匹配出空白字符集,如回车,换行等.
七,匹配空白字符集
import re
a='C0C++2C#3java8Python7javascirpt*&%$'
r=re.findall('\s',a)
print(r)
注,此处'\s'并没有匹配出特殊字符%&等,只匹配空白字符,回车换行等。
附加案例 # '.'点号匹配除换行符\n之外的其他所有字符
八,数量词(匹配一串字符中不同位数组成的单词)
import re
a='C0C++2C#3java8Python7javascirpt*&%$' #注,字符集a中,能组成单词的有C,java,Python,javascirpt,但单词的位数不同
r=re.findall('[a-zA-Z]{1,9}',a) #注,'[a-zA-Z]'为能组合的字母集,{1,9}为能组成单词的位数,从1到9。
print(r)
结果为C java Python javascript
注,数量词的匹配在Python中存在贪婪与非贪婪两种模式,本例'[a-z]{1,9}'为贪婪模式,在匹配过程中先以能通过的字母的最大数原则,如果是非贪婪模式‘[a-z]{3,9}?’注后有?号,输出的结果中,C是不会被输出的,而且java也会被分开打印,只打印出jav,而最后的a是不会被打印出的。只匹配三位,而且后面的就算有字母,但不够三位,也不会被打印出。
九,数量词匹配的限制
9.1)*星号匹配0次或者无限多次
import re
a='pytho0python1pythonn2'
r=re.findall('python*',a) #'*'星号为匹配0次或者无限多次,以n匹配python。虽然第一个没有n,也可以表示为0次.
print(r)
结果为:pytho python pythonn
9.2)+加号匹配一次或者无限多次
import re
a='pytho0python1pythonn2'
r=re.findall('python+',a) # +加号表示以n结束匹配python出现一次或者无限多次
print(r)
结果为: python pythonn
9.3) ?问号匹配0次或者一次
import re
a='pytho0python1pythonn2'
r=re.findall('python?',a) # ?问号表示以n匹配python出现0次或者一次
print(r)
结果为:pytho python python
注,本例是的?号与上例的非贪婪不同,上例有{1,9}的限位。
9.4)指定数次匹配
import re
a='pytho0python1pythonn2'
r=re.findall('python{2}',a) #指定2次
print(r)
结果为: pythonn
十,边界匹配
import re
qq= 10000001
r=re.findall('^000$',qq) #^号表示字符串必须以000为开始,$号表示字符串必须以000为结尾。
print(r)
结果为[]空
十一,组匹配 (以组的形式为匹配)
import re
a='pyhtonpythonpythonpythonpython
r=re.findall('(python){3}',a) #注在例9.4中,pyhton没有加()括号,表示以n为结束匹配,本例加()括号表示以python为结束来匹配,
print(r)
结果为:pyhton
注,正则内()括号为且的关系,[]中括号为或的关系.
十二,正则的第三个参数 模式
import re
lanuage='PyhthonC#JavaScript'
r=re.findall('c#',lanuage,re.I) #正则表达式的第三个参数称为模式如:re.I(忽略大小写),当多个模式一齐存在时用'|'竖线连接如:re.I|re.s re.s为改为.点号的规则(七案例下,附加案例)
print(r)
转载于:https://www.cnblogs.com/tngh/p/9315298.html
Pyhton入门 笔记 第三天 正则表达式与JSON相关推荐
- python语言支持函数式编程_Python语言之Pyhton入门笔记函数式编程
本文主要向大家介绍了Python语言之Pyhton入门笔记函数式编程,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 一,匿名函数 def add(x,y) return x+y ...
- ROS入门笔记(三):二进制包与源代码包
ROS入门笔记(三):二进制包与源代码包 文章目录 1 软件包分类 2 二进制包与源代码包的区别 3 ROS二进制包的安装 4 适配ROS的IDE 注意: 如果你是使用类似apt这样的软件管理器来安装 ...
- 机器学习入门笔记(三):K近邻算法
文章目录 一.K近邻算法的基本概念 1.1 K近邻算法实现 二.K近邻分类三要素 2.1 距离度量 2.2 K值的选择 2.2.1 基于m-fold cross validation的 K值选择 2. ...
- 深度学习入门笔记(三):求导和计算图
欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...
- Python爬虫学习笔记(三)——正则表达式
介绍 正则表达式是一种处理字符串的强大工具,能实现字符串的检索.替换.匹配验证等.在爬虫中,正则表达式主要用于从HTML里提取所需要的信息 常用的匹配规则 模式 描述 \w 匹配字母.数字及下划线 \ ...
- vue入门笔记(三)
Vue Day 03 文章目录 Vue Day 03 一.v-model的使用(表单绑定) 1.1.v-model的基本使用 1.2.v-model的原理 1.3.v-model结合radio的类型使 ...
- Python入门 - 笔记 - 第三章 Python中的变量和数据类型
第三章 Python中的变量和数据类型 -------------------------------------------------------------------------------- ...
- photoshop2020入门笔记(三)——磨皮
一.通道磨皮 思路:借助通道计算功能,计算斑点纹理,将其选中,进行磨皮 1.打开图片后,打开右边菜单栏中的通道栏,选择蓝通道(红绿蓝三通道中最明显的一个),进行复制,形成拷贝 2.点击上方菜单栏中的滤 ...
- 小甲鱼python入门笔记(三)
目录 十三.函数 4.作用域 (1)局部作用域 (2)全局作用域 (3)global语句 (4)嵌套函数 (5)nonlocal语句 (6)LEGB规则 5.闭包 6.装饰器 7.lambda表达式 ...
最新文章
- 云炬Android开发报错处理教程 Gradle下载超时please configure the proxy settings either in IDE or Gradle
- spring-注入集合对象
- org.springframework.jdbc.core.JdbcTemplate 无法import原因分析
- 从Windows上用SSH链接接入Ubuntu
- windows搭建python开发环境方法_04 Windows下搭建 Python 开发环境 - Python 入门教程
- iOS即时通讯输入框随字数自适应高度
- 从零开始刷Leetcode——数组(448.485.509)
- 关于CF平台中基础服务的监控方案
- 智能算法---模拟退火搜索函数最小值
- SAP财务管理大全-采购收货-标准成本法 移动平均价
- %appdata% 代表什么?
- TBS1237 1/4 扫 48 通道 LED 背光驱动芯片
- Java编程到底是用idea好还是eclipse好?
- S5P4418裸机开发(六):串口初试,简单回显(轮询模式)
- DirectX12(D3D12)基础教程(十七)——让小姐姐翩翩起舞(3D骨骼动画渲染【1】)
- 选中Checkbox,则向数组中增加其所属条目的某个属性值,取消选中,则删除。
- CAD碎片化学习教程 @4. 按比例放大或缩小图形尺寸
- OSChina 周一乱弹 —— 为什么人类和人工智能定要一战
- c语言报告对老师的致谢,论文对老师的致谢
- linux-文件系统管理10-关于存储介质的那些事儿
热门文章
- vue 原型设计 拖拽_设计即开发,如何打通软件研发的“任督二脉”?
- java 代码里设置环境变量_如何在一个java程序里设置环境变量
- java transient 应用场景_关于java:transient关键字的用途是什么以及何时使用它?...
- Spring 创建Bean的三种方式
- TensorFlow DCNN
- Python 绘图 Matplotlib 快速参考手册
- virtualbox 安装kali linux虚拟机,kali Linux安装virtualbox虚拟机之爬坑经历
- 什么是好的虚拟化项目交付(转)
- 生产环境的分布式任务调度框架如何选择?quartz、xxl-job、Elastic-Job、Saturn
- Java Web学习总结(39)——JavaEE常用的Jar详解