-
正則表達式的概念
查看全部 -
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.正則表達式過程:依次拿出表達式和文本中的字符比較,如果每一個字符都能匹配,則匹配成功、否則匹配失敗。
查看全部
舉報