-
reg = re.compile(r'xx', re.I) , flag(re.I)的作用是忽略大小寫
查看全部 -
正則表達式流程:pattern=>re.compile(r'xxx'), match=>pa.match('str')
python自身匹配方法: str.find('xx')/startswith('xx') <=bool
pa.match方法返回Match對象,現實對象內容使用match.group()?????
其他方法:match.span()匹配對象跨度/string匹配字符串/re表達式實例
查看全部 -
Python?3?代碼,獲取圖片不在是src開頭,另外圖片結尾有jpg和npg。特別是下載重命名時不能都命名為jpg格式。
#?get?html? req?=?urllib.request.urlopen('http://www.xianlaiwan.cn/course/list') buf_html?=?req.read().decode('utf-8') images_tmp?=?re.findall(r'data-original=.*(?:jpg|png)',?buf_html) #get?image?url?list img_urls?=?[] for?ins?in?images_tmp: ????t?=?re.split(r'//',?ins) ????img_urls.append('http://'?+?t[1]) i?=?1 for?url?in?img_urls: ????fileName?=?open(str(i)?+?'.'?+?re.split(r'\.',?url)[-1],?'wb') ????req1?=?urllib.request.urlopen(url) ????buf_image?=?req1.read() ????fileName.write(buf_image) ????i?+=?1
查看全部 -
正則表達式
查看全部 -
'正則表達式語法' #?匹配的字符串也有[]時,需要轉義,如r'\[[\w]\]' #?字符匹配 ????#?.?匹配\n除外的任意字符 ????#?[...]?匹配字符集,如[a-zA-Z0-9] ????#?[\d]/[\D]?匹配數字/非數字 ????#?[\s]/[\S]?匹配空白/非空白 ????#?[\w]/[\W]?匹配單詞字符[a-zA-Z0-9]/非單詞字符 #?多次匹配 ????#?*?匹配前一個字符0次或無限次,如r'[A-Z][a-z]*'可以匹配前面大寫后面小寫的任意個字符 ????#?+?匹配前一個字符1次或無限次,如r'[_a-zA-Z]+[_\w]'匹配下劃線或字母開頭的字符,即匹配有效變量 ????#???匹配前一個字符0次或1次,[1-9]?[0-9]匹配有效的兩位數 ????#?{m}/{m,n}?匹配前一個字符m次或者n次,如r'[a-zA-Z0-9]{6,10}@163.com'匹配6-10個字符的郵箱帳號,即匹配指定次數的的字符 ????#?*?/+?/???匹配模式變為非貪婪,即盡可能少匹配字符,r'[A-Z][a-z]*?只匹配符合的0次 #?邊界匹配,強匹配 ????#?^?匹配字符串開頭如,r'^[\w]{4,10}@163.com$'匹配以任意4-10個有效字符開頭,與@163.com結尾的字符 ????#?$?匹配字符串結尾 ????#?\A/\Z?指定的字符串必須出現在開頭或結尾 #?分組匹配 ????#?|?匹配左右任意一個表達式 ????#?(ab)?括號中表達式作為一個分組 ????#?\<number>?引用編號為num的分組匹配到的字符串 ????#?(?P<name>)?分組起一個別名 ????#?(?P=name)?引用別名為name的分組匹配字符串
查看全部 -
#環境python3.7 import?re import?urllib.request req=urllib.request.urlopen('http://www.xianlaiwan.cn/course/list')#讀取網站 buf=req.read().decode('utf-8')#讀取網站中的字符串 listurl1=re.findall(r'//img.+\.jpg',buf)#找到匹配對象 str1='?'.join(listurl1)#在前面添加https: subhttps=re.sub(r'//','https://',str1) sht=re.split(r'?',subhttps) #保存圖片 i=0 for?url?in?sht: ????f=open(str(i)+'.jpg','wb+')#打開一個文件(文件名,寫入方式)若不存在就會創建,wb+才支持byte的寫入 ????req=urllib.request.urlopen(url) ????buf=req.read() ????f.write(buf) ????i+=1
查看全部 -
sub 與 split
str3 = ‘imooc = 1000’
info = re.sub(r'\d+' , '1001' , str3) 1000替換1001;1001也可以用函數代替
查看全部 -
search 與 findall 區別
info = re.search(r' \d+' , str1) 尋找str1中的數字
str2 = 'c++=100,java=90,python=80'
info = re.findall(r'\d+',str2) 尋找目標中的所有匹配項,并全部返回一個列表
查看全部 -
表達式語法2
查看全部 -
表達式語法
查看全部 -
正則表達式
查看全部 -
RE模塊的其他rerere
查看全部 -
正則表達式語法
查看全部 -
正則表達式語法
查看全部 -
正則表達式語法
查看全部
舉報
0/150
提交
取消