-
正则表达式的概念
查看全部 -
import re:python 正则表达式模块
生成对象:
pa = re.compile(r' imooc\n') 括号里面r是什么作用?不转义,也就是说\n不代表换行,而是直接的字符串
匹配有没有下划线的实例:
pa1 = re.compile(r'_')
ma1=pa1.match('_value')----生成的正则表达式对象去跟括号里内容匹配,查找有没有下划线。
ma1.group()
输出:'_' (匹配上了)
查看全部 -
3、
sub(patten,repl,string,count=0,flags=0)
将字符串中匹配正则表达式部分替换为其他值
4、
split(patten,repl,string,count=0,flags=0)
根据匹配分割字符串,返回分割字符串组成的列表
查看全部 -
1、
search(pattern,string,flags=0)
在一个字符串中查找匹配
2、
findall(pattern,string,flags=0)
找到匹配,返回所以匹配部分的列表
查看全部 -
import re from urllib import request def spider_mm(): #<img src="http://i1.whymtj.com/uploads/tu/201905/10220/z6cs1a6z.jpg" width="180" height="270" /> req = request.urlopen('http://www.umei.cc/meinvtupian/') buf = req.read().decode('utf-8') #print(buf) list_url = re.findall(r'src=.+\.jpg', buf) #print(list_url) # 把src="去掉 for i in range(len(list_url)): list_url[i] = re.sub(r'src="', '', list_url[i]) print(list_url[i]) i = 0 for url in list_url: #读取并保存到本地 f = open('E:\\image\\' + str(i) + '.jpg', 'wb+') #req = request.urlopen('http:' + url) # 必须要加上http: req = request.urlopen( url) # 必须要加上http: buf = req.read() f.write(buf) f.close() i += 1 if __name__=="__main__": spider_mm()
查看全部 -
import re if __name__=="__main__": str = "hello world 100, 96" print(str.find('100')) #在字符串中查找100 info = re.search(r'\d+', str) print(info.group()) str1 = 'C++=100,Java=90, python=80' info1 = re.search(r'\d+', str1) print(info1.group()) info2 = re.findall(r'\d+', str1) print(info2) sum = sum([int(x) for x in info2]) print(sum) str3 = 'imooc videonum =1000' info3 = re.sub(r'\d+', '100', str3) #将字符串中匹配正则表达式的部分替换为其他值 print(info3) info4 = re.sub(r'\d+', '1001', str3) print(info4) str4 = 'I:I C++ Java Python' info5 = re.split(r':| ', str4) print(info5)
查看全部 -
re(正则库)的方法:
search:在一个字符串中查找匹配
findall:找到匹配,返回所有匹配部分的列表
sub:将匹配出来的部分替换为其他值
split:分割字符串,返回分割后的数组
查看全部 -
| 匹配左右任意一个表达式
(ab) 括号中表达式作为一个分组
\<number> 引用编号为number的分组匹配到的字符串
(?P<name>) 分组起别名
(?P=name) 引用别名为name的分组匹配字符串
查看全部 -
多字符匹配
re.match(r'[_a-zA-Z]+[_\w]*',"asfjl;ka ")
+:前面的一个字符可以出现1次或无数次
*:前面的一个字符可以出现0次或无数次
以下划线或者字母开头(+号的作用),后面可以是下划线或者其他字符的字符串
<br>
?:匹配前面的一个字符0次或者1次<br>
[1-9]?[0-9] #09是可以被match上的 虽然只是返回一个0 奇怪。。
{m} 匹配前一个字符m次
{m,n} 匹配前一个字符m到n次
*? +? ?? 指虽然可以匹配上但是不返回后面的
查看全部 -
. 匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。<br> \d 匹配一个数字字符。等价于 [0-9]。<br> \D 匹配一个非数字字符。等价于 [^0-9]。<br> \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。<br> \S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。<br> \w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。<br> \W 匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。
查看全部 -
正则表达式语法
查看全部 -
#!/usr/bin/python3 # -*- coding: UTF-8 -*- #desc: 正则匹配查找 import re if __name__=="__main__": str = "I like python" str1 = "python" pa = re.compile(r'python') #匹配python字符串, r表示是原字符串 print(type(pa)) #查看类型 print(pa.match(str)) #None表示没有匹配成功 print(pa.match(str1)) #匹配成功 ma = pa.match(str1) print(ma.group()) #返回字符串或元祖 print(ma.span()) #返回索引位置 print(ma.string) #返回匹配的字符串 print(ma.re) #返回匹配实例 pa1 = re.compile(r'_') ma1 = pa1.match('_value') print(ma1.group())
查看全部 -
re(正则库)的方法
查看全部 -
导入模块 import re
生成Pattern pa = re.compile(r'要查找的内容')
生成Match ma = pa.match(被查找的字符串)
ma.group() #返回匹配字符串或元组
ma.span() #返回匹配字符串的位置
ma.string #返回被匹配字符串
ma.re #返回匹配实例
查看全部 -
正则表达式的作用:
1.使用单个字符串来描述匹配一系列符合其语法规则的字符串
2.是对字符串操作的一种逻辑公式
3.处理文本和数据
4.正则表达式过程:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功、否则匹配失败。
查看全部
举报