最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

python基础学习笔记八_正则模块知识

XAMPP案例 admin 811浏览 0评论

0Python

import re  #导入正则模块

 

# “.”匹配任意1个字符(除了\n之外)

#* 匹配前一个字符出现0次或者无限次,即可有可无

# + 匹配前一个字符出现1次或者无限次,即至少有1次

#  ? 匹配前一个字符出现1次或者0次,即要么有1次,要么没有

#[ ] 匹配[ ]中列举的字符

#\d 匹配数字: 0,1,2,3,4,5,6,7,8,9

#\D 匹配非数字, 即不是数字

#\s 匹配空白, 即 空格 和 tab 键

# \S匹配非空白

#\w 匹配单词字符, 即a-z,A-Z,0-9,_,汉字

# \W匹配非单词字符

#{m}匹配前一个字符出现m次    {m}中m的值不要多于字符串的长度

#{m,n} 匹配前一个字符出现从m到n次   最少是m次,最多是n次

# ^有两个作用:1.以什么开头   2.表示对什么取反

# 注意 ^在[]里面才表示不匹配

# \num 引用分组num匹配到的字符串

# (?P<name>) 分组起别名

# (?P=name) 引用别名为name分组匹配到的字符串

 

#贪婪与非贪婪

# 贪婪匹配:在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配.

# 非贪婪匹配:在满足匹配时,匹配尽可能短的字符串,使用?来表示非贪婪匹配.

# ? 最多匹配一次,最少匹配0次

# .*?是非贪婪模式

# 在*/+/{m,n}等后面加上?, 使贪婪变为非贪婪

# Python中字符串前面加上 r 表示原生字符串

# print(‘python\n123’)

# print(‘python\\n123\\t\\n’)

# print(r’python\n123\t\n’)

 

 

 

#正则方法

# match   从头匹配      返回object   匹配一次  最不常用

#re.match(正则表达式,要匹配的字符串)  #从一个字符串的开始位置匹配正则表达式,返回match对象,没有匹配成功返回None –匹配数据

## print(接收数据的变量.group()) –接收数据

 

#split()根据匹配进行切割字符串,并返回一个列表

# re.split(表达式,字符串)

 

# search  从头到尾匹配  返回object   匹配一次   较常用

# res = re.search(表达式, 要匹配的字符串)  –匹配数据

# print(接收数据的变量.group()) –接收数据

 

# findall 从头到尾匹配  返回list     匹配所有   最常用

# res = re.findall(表达式, 要匹配的字符串)

 

#sub() 将匹配到的数据进行替换

# re.sub(表达式(需要被替换的), 替换值, 字符串)

# sub方法会将匹配到的数据替换成其他的值

 

# group():匹配出来的整体结果

# groups():匹配出来的分组加入元组

 

#正则举例:

#match 只查询开头

#zz=”python”

#res=re.match(“.”,zz)

#print(res.group())  #结果为:p  match会从字符串开始位置查找,一点表示查找任意字符找到就返回结果

 

#res=re.match(“…..”,zz)

#print(res.group())  #结果为:pytho 想匹配几个字符可以把表达式写几个点

 

# search  从头到尾匹配找到一个就返回

#zz=”python123″

#res=re.search(“\d”,zz)  #\d 查找数字

#print(res.group()) #结果为:1

 

#res=re.search(“\d+”,zz)  #\d和+组合可以取出全部数字,也可以用其它组合

#print(res.group()) #结果为:123

 

#zz=”abbbbbc”

#res = re.search(‘ab*?’, zz)

#print(res.group()) #结果为:a

 

# res = re.search(‘ab*’, zz)

# print(res.group())  #结果为:abbbbb

 

# res = re.search(‘.?’, zz)

# print(res.group()) #结果为:a

 

# findall 从头到尾匹配会把查找到的全部返回在列表里面

#zz=”张三123李四abc”

#res=re.findall(“\w”,zz)  #\w 会匹配数字大小写字母和文字

#print(res)  #结果为:[‘张’, ‘三’, ‘1’, ‘2’, ‘3’, ‘李’, ‘四’, ‘a’, ‘b’, ‘c’]

 

#res=re.findall(“\d”,zz)

#print(res)  #结果为:[‘1’, ‘2’, ‘3’]

 

#res=re.findall(“[a-z]”,zz) #匹配a-z的字母

#print(res) #结果为: [‘a’, ‘b’, ‘c’]

 

#res=re.findall(“[^a-z]”,zz) #不匹配a-z的字母

#print(res) #结果为:[‘张’, ‘三’, ‘1’, ‘2’, ‘3’, ‘李’, ‘四’]

 

#split()根据匹配进行切割字符串,并返回一个列表

#zz=”python三3AA”

#res=re.split(“\d”,zz)    以数字把前后分开

#print(res) #结果为:[‘python三’, ‘AA’]

 

# res=re.split(“三”,zz)  #表达式也可以直接填字符在里面

# print(res)  #结果为:[‘python’, ‘3AA’]

 

#sub() 将匹配到的数据进行替换

# zz=”p1y2t3h4o5n”

# res=re.sub(“\d”,””,zz)

# print(res)  #结果为:python

 

# \num 引用分组num匹配到的字符串  num是从1开始

# zz='<html><h1>张三</h1></html>’

# res = re.match(‘<(\w*)><(\w*)>.*</\\2></\\1>’, zz)

# print(res.group()) #结果为:<html><h1>张三</h1></html>

 

# (?P=name) 引用别名为name分组匹配到的字符串

# zz= ‘<h1><div>张三</div></h1>’

# # n1代表h1, n2代表div

# #res = re.match(‘<(?P<n1>\w*)><(?P<n2>\w*)>.*</(?P=n2)></(?P=n1)>’, zz)

# res = re.match(‘.*’, zz)  #结果为:<h1><div>张三</div></h1>

# print(res.group())  #结果为:<h1><div>张三</div></h1>

转载请注明:XAMPP中文组官网 » python基础学习笔记八_正则模块知识

您必须 登录 才能发表评论!