正則表達式
re模塊
- 在 Python中,可以通過使用** re 模塊**的正則表達式來匹配字符串
語法
import re
# 使用match方法進行匹配操作
result=re.match(正則表達式,要匹配的字符串)
# 如果上面匹配到數(shù)據(jù)的話,要以使用group方法來提取數(shù)據(jù)
result.group()
單個字符匹配規(guī)則
字符 | 功能 |
---|---|
. | 匹配任意1個字符(除了\\n) |
[ ] | 匹配 [ ] 中列舉的字符 |
\\d | 匹配數(shù)字,即 0~9 |
\\D | 匹配非數(shù)字 |
\\s | 匹配空白字符,即 空格、tab鍵 |
\\S | 匹配非空白 |
\\w | 匹配單詞字符,即 a |
\\W | 匹配非單詞字符 |
**多個字符匹配規(guī)則 **
字符 | 功能 |
---|---|
* | 匹配前一個字符出現(xiàn)0次或無限次,即可有可無 |
+ | 匹配前一個字符出現(xiàn)1次或者無限次,即 至少1次 |
? | 匹配前一個字符出現(xiàn)0次或1次,即 要么1次,要么沒有 |
{m} | 匹配前一個字符出現(xiàn)m次 |
{m,n} | 匹配前一個字符出現(xiàn)從m到n次 |
匹配分組
字符 | 功能 |
---|---|
(ab) | 將括號中的字符作為一個分組 |
\\num | 引用分組 num匹配到字符串 |
(?P) | 分組起別名 |
(?P=name) | 引用別名為name分組匹配到的字符串 |
示例
import re
# 匹配單個字符
str_content="生化危機2"
t1=re.match(r"生化危機\\d",str_content)
print(t1.group())
# 匹配多個字符
str_content="孫悟空的手機是:13388888888"
t1=re.match(r"孫悟空的手機是:\\d{1,11}",str_content)
print(t1.group())
# 分組, 匹配郵箱,126、qq、163郵箱都可以, 郵箱中的 .需要使用 \ 轉(zhuǎn)義
str_content="孫悟空的郵箱是:sunwukong@163.com"
t1=re.match(r"孫悟空的郵箱是:\\w+@(126|163|qq)\\.com",str_content)
print(t1.group())
re模塊的高級用法
- search、findall、sub、split
示例
# search 用法
str_content="孫悟空會72變"
t1=re.search(r"\\d+",str_content)
print(t1.group())
# 輸出結(jié)果:72
# findall 用法
str_content="孫悟空會72變,豬八戒會36變,二郎神會36變"
t1=re.findall(r"\\d+",str_content)
print(t1)
# 輸出結(jié)果:['72', '36', '36']
# sub 將匹配到的字符串進行替換
str_content="孫悟空會 36 變"
t1=re.sub(r"\\d+","72",str_content)
print(t1)
# 輸出結(jié)果:孫悟空會 72 變
# split 根據(jù)匹配切割字符串,返回一個字符列表
str_content="孫悟空,豬八戒,沙和尚"
t1=re.split(r",",str_content)
print(t1)
# 輸出結(jié)果:['孫悟空', '豬八戒', '沙和尚']
注:Python 中字符串前面加上 r 表示原生字符串
- 與大多數(shù)編程語言相同,正則表達式里使用 "" 作為轉(zhuǎn)義字符,這就可能會有反斜杠困擾。 如果你需要匹配的文本中有兩個 "" ,那么使用正則表達式里面就需要使用四個 "" (即 "\")
str_content="c:\\\\a"
# 不使用 r
t1=re.match("c:\\\\\\\\a",str_content)
print(t1.group())
# 使用 r
t1=re.match(r"c:\\\\a",str_content)
print(t1.group())
**輸出結(jié)果
**
web服務(wù)器
http協(xié)議
- 在Web應(yīng)用中,服務(wù)器把網(wǎng)頁傳遞給瀏覽器,實際上就是把網(wǎng)頁的html代碼發(fā)送給瀏覽器,讓瀏覽器顯示出來,而瀏覽器和服務(wù)器之間的傳輸協(xié)議是HTTP
- HTML 是一種用來定義網(wǎng)頁的文本,編寫網(wǎng)頁的代碼就是html語言
- **HTTP **是在網(wǎng)絡(luò)上傳輸html的協(xié)議,用于瀏覽器和服務(wù)器之間的通信
訪問百度的示例
簡單web服務(wù)器
import socket
def main():
# 創(chuàng)建tcp套接字
so_server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 綁定端口
so_server.bind(("",33333))
# 監(jiān)聽套接字
so_server.listen(128)
# 等待新客戶端接連
new_socket,client_addr=so_server.accept()
#接收瀏覽器發(fā)過來的請求
request=new_socket.recv(1024)
print(request)
# 發(fā)送給瀏覽器數(shù)據(jù)
content="HTTP/ 1.2 xxx\\r\\n"
content+='\\r\\n'
content+="hello world!!"
new_socket.send(content.encode("utf-8"))
# 關(guān)閉
new_socket.close()
so_server.close()
if __name__ == '__main__':
main()
請求示例
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
模塊
+關(guān)注
關(guān)注
7文章
2773瀏覽量
49130 -
字符串
+關(guān)注
關(guān)注
1文章
589瀏覽量
21018 -
python
+關(guān)注
關(guān)注
56文章
4822瀏覽量
85900
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
Labview與Web(二)---------------Web 服務(wù)器(原創(chuàng))
,還請告知,謝謝。版本:labview 2014/2013 在此我們只是先簡單紹一下web服務(wù)器,感興趣的朋友可以深入研究一下。文件->新建…->項目。我的電腦->新建->web
發(fā)表于 04-20 18:14
Labview與Web(二)---------------Web 服務(wù)器(原創(chuàng))
簡單紹一下web服務(wù)器,感興趣的朋友可以深入研究一下。文件->新建…->項目。我的電腦->新建->web服務(wù)保存,并在保存目錄創(chuàng)建publi
發(fā)表于 04-20 18:15
使用Python創(chuàng)建簡單的FTP服務(wù)器
通過 Python 的 -m 選項將 Pyftpdlib 模塊作為一個簡單的獨立服務(wù)器來運行,假設(shè)我們需要共享目錄 /Users/Edu/Oldboy,只需要以下這個命令行就可以輕松實現(xiàn):$ cd
發(fā)表于 05-04 16:17
Python爬蟲與Web開發(fā)庫盤點
可以更加直接的需求靈活搭配。Tornado全稱叫Tornado Web Server,目前是Facebook開源的一個版本,它和其他主流的框架有一個非常明顯的區(qū)別:就是非阻塞式服務(wù)器,速度非???。特別對于長輪詢,WebSocket等實時要求高的
發(fā)表于 05-10 15:21
常見的嵌入式web服務(wù)器有哪些
常見的嵌入式web服務(wù)器有:Lighttpd, Shttpd, Thttpd, Boa, Mini_httpd, Appweb, Goahead, luaopenwrt用的就是lua。當(dāng)然還有python實現(xiàn)的輕量級
發(fā)表于 10-27 08:24
如何實現(xiàn)對嵌入式WEB服務(wù)器系統(tǒng)的控制設(shè)計
......摘要工程實踐教學(xué)環(huán)節(jié)是為了學(xué)生能夠更好地鞏固和實踐所學(xué)專業(yè)知識而設(shè)置的,在本次工程實踐中,我們以ARM體系結(jié)構(gòu)與編程課程中所學(xué)知識為基礎(chǔ),對基于ARM的簡單嵌入式WEB服務(wù)器系統(tǒng)進行了
發(fā)表于 11-09 08:47
如何在microPython上搭建一個簡單的HTTP WEB服務(wù)器呢
在microPython上搭建一個簡單的HTTP WEB服務(wù)器microPython給會使用Python的人從事單片機開發(fā)提供了一個可能, 但是目前好像沒有一個成熟的
發(fā)表于 12-08 07:59
使用IIS為Web內(nèi)容配置Web服務(wù)器權(quán)限
本文分步介紹如何使用 Internet 信息服務(wù) (IIS) 5.0 授予對 Web 內(nèi)容的 Web 服務(wù)器權(quán)限?! ?nbsp; 您可以對服
發(fā)表于 08-26 15:33
?17次下載
如何辨別Web服務(wù)器,應(yīng)用程序服務(wù)器,HTTP服務(wù)器
Apache是純粹的web服務(wù)器,而Tomcat和IIS因為具有了解釋執(zhí)行服務(wù)器端代碼的能力,可以稱作為輕量級應(yīng)用服務(wù)器或帶有服務(wù)器功能的
發(fā)表于 11-10 14:28
?1121次閱讀
嵌入式web服務(wù)器
常見的嵌入式web服務(wù)器有:Lighttpd, Shttpd, Thttpd, Boa, Mini_httpd, Appweb, Goahead, luaopenwrt用的就是lua。當(dāng)然還有python實現(xiàn)的輕量級
發(fā)表于 10-20 18:51
?9次下載

簡單的嵌入式web服務(wù)器設(shè)計
、Safari。瀏覽器是最經(jīng)常使用到的客戶端程序。WEB服務(wù)器 Web服務(wù)器一般指網(wǎng)站服務(wù)器,是
發(fā)表于 10-21 11:07
?11次下載

嵌入式web服務(wù)器系統(tǒng)設(shè)計,基于-ARM簡單嵌入式WEB服務(wù)器系統(tǒng)設(shè)計.doc
......摘 要工程實踐教學(xué)環(huán)節(jié)是為了學(xué)生能夠更好地鞏固和實踐所學(xué)專業(yè)知識而設(shè)置的,在本次工程實踐中,我們以ARM體系結(jié)構(gòu)與編程課程中所學(xué)知識為基礎(chǔ),對基于ARM的簡單嵌入式WEB服務(wù)器系統(tǒng)
發(fā)表于 11-03 20:06
?21次下載

嵌入式web服務(wù)器系統(tǒng),嵌入式Web服務(wù)器的設(shè)計與實現(xiàn)
摘要:嵌入式Web服務(wù)器是嵌入式系統(tǒng)應(yīng)用的一個重要組成部分.以其簡單,廉價,功能完善和通用性強等特點,在遠程監(jiān)控,智能家電和資源共享等多種場合得到廣泛應(yīng)用.本文以嵌入式Web
發(fā)表于 11-04 11:06
?27次下載

評論