Python语言之Pyhton入门 正则表达式与JSON
小标 2018-08-08 来源 : 阅读 1450 评论 0

摘要:本文主要向大家介绍了Python语言之Pyhton入门 正则表达式与JSON,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

本文主要向大家介绍了Python语言之Pyhton入门 正则表达式与JSON,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

一,判断字符中是否包含指定的单词
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)

本文由职坐标整理并发布,希望对同学们学习Python有所帮助,更多内容请关注职坐标编程语言Python频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程