字符 | 功能 |
---|---|
| | 匹配左右任意一個表達式 |
(ab) | 將括號中字符作為一個分組 |
\num | 引用分組num匹配到的字符串 |
(?P<name>) | 分組起別名 |
(?P=name) | 引用別名為name分組匹配到的字符串 |
匹配1-100之間數(shù)字
# -*- coding: utf-8 -*-
# @Time : 2019/10/4 17:48
# @Author : 幣行者
# @Email : xypip@qq.com
# @File : tetst6.py
import re
ret = re.match("[1-9]?\d$","08")
if ret:
print(ret.group())
else:
print("不在0-100之間")
ret = re.match("[1-9]?\d$|100","100")
print(ret.group())
()使用方法
# -*- coding: utf-8 -*-
# @Time : 2019/10/6 22:38
# @Author : 幣行者
# @Email : xypip@qq.com
# @File : 正則表達()分組.py
import re
ret = re.match("\w{4,20}@163\.com", "xingzhe@163.com")
print(ret.group())
ret = re.match("\w{4,20}@(163|126|qq)\.com", "xingzhe@126.com")
print(ret.group())
ret = re.match("\w{4,20}@(163|126|qq)\.com", "xingzhe@qq.com")
print(ret.group())
不以4或7結(jié)尾的手機號
首位以1開頭,中間10位數(shù)字任意胖笛,末位不是4或7
# -*- coding: utf-8 -*-
# @Time : 2019/10/6 22:53
# @Author : 幣行者
# @Email : xypip@qq.com
# @File : 手機號碼匹配.py
import re
tels = [
"13062617783",
"123456",
"13844456784"
]
for tel in tels:
ret = re.match("1\d{9}[0-35-68-9]", tel)
if ret:
print(ret.group())
else:
print("%s不是符合條件的手機號" % tel)
正則表達式是一種通用的字符串處理方法,Python引入re模塊宜岛,可以快速處理匹配我們需要的信息长踊,正則表達式語法眾多,高手玩到爐火純青可以隨心所欲且使用高級的匹配方式萍倡,對于我們大多數(shù)人以及行者本人并非在編程一線行業(yè)身弊,因此,寫代碼純粹是滿足個人需要列敲,簡化我們流程提高我們的效率阱佛,本來開始使用Python爬蟲獲取簡書專題的所有文章和對應(yīng)鏈接,但是戴而,經(jīng)過爬取實踐時發(fā)現(xiàn)瘫絮,lxml只能解析到前10篇文章,將專題的網(wǎng)頁下載下來分析發(fā)現(xiàn)填硕,只有我們將專題拉到尾部全部加載出來下載才可以獲得全部網(wǎng)頁源代碼麦萤,也是出于安全性,防止被簡書后臺發(fā)現(xiàn)扁眯,所以使用正則表達進行匹配壮莹,服務(wù)器就不會獲取爬蟲信息,幾乎任何領(lǐng)域姻檀,20%的知識可以解決掉80%的問題命满,我的平時工作就是教計算機編程,教算法競賽绣版,所以也利用編程基礎(chǔ)完成一些自動化腳本的創(chuàng)建胶台。至于爬蟲問題歼疮,當(dāng)我有時間會深入了解一下,破解這個只能夠爬取前10篇文章信息的問題诈唬。編程的價值韩脏,我一直認為,能夠應(yīng)用于我們的生活就是價值铸磅。