久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

自學Python教程【第五十四節(jié)】 正則表達式(2)

歡迎大家來到Python教程教室,上節(jié)課我們簡單認識了一下Python正則表達式,這節(jié)課我們繼續(xù)了解Python正則表達式的相關(guān)內(nèi)容,并為大家解決上節(jié)課中的部分疑問,比如r代表什么,來一起學習吧:

有同學問起昨天那段測試代碼里的問題,我來簡單說一下。

1.

r"hi"

這里字符串前面加了r,是raw的意思,它表示對字符串不進行轉(zhuǎn)義。為什么要加這個?你可以試試print "\bhi"和r"\bhi"的區(qū)別。

>>> print "\bhi" 
hi
>>> print r"\bhi"
\bhi

可以看到,不加r的話,\b就沒有了。因為Python的字符串碰到“\”就會轉(zhuǎn)義它后面的字符。如果你想在字符串里打“\”,則必須要打“\\”。

>>> print "\\bhi" 
\bhi

這樣的話,我們的正則表達式里就會多出很多“\”,讓本來就已經(jīng)復雜的字符串混亂得像五仁月餅一般。但加上了“r”,就表示不要去轉(zhuǎn)義字符串中的任何字符,保持它的原樣。

2.

re.findall(r"hi", text)

re是Python里的正則表達式模塊。findall是其中一個方法,用來按照提供的正則表達式,去匹配文本中的所有符合條件的字符串。返回結(jié)果是一個包含所有匹配的list。

3.

今天主要說兩個符號“.”和“*”,順帶說下“\S”和“?”。

“.”在正則表達式中表示除換行符以外的任意字符。在上節(jié)課提供的那段例子文本中:

Hi, I am Shirley Hilton. I am his wife.

如果我們用“i.”去匹配,就會得到

['i,', 'ir', 'il', 'is', 'if']

你若是暴力一點,也可以直接用“.”去匹配,看看會得到什么。

與“.”類似的一個符號是“\S”,它表示的是不是空白符的任意字符。注意是大寫字符S。

4.

在很多搜索中,會用“?”表示任意一個字符,“*”表示任意數(shù)量連續(xù)字符,這種被稱為通配符。但在正則表達式中,任意字符是用“.”表示,而“*”則不是表示字符,而是表示數(shù)量:它表示前面的字符可以重復任意多次(包括0次),只要滿足這樣的條件,都會被表達式匹配上。

結(jié)合前面的“.*”,用“I.*e”去匹配,想一下會得到什么結(jié)果?

['I am Shirley Hilton. I am his wife']

是不是跟你想的有些不一樣?也許你會以為是

['I am Shirle', 'I am his wife']

這是因為“*”在匹配時,會匹配盡可能長的結(jié)果。如果你想讓他匹配到最短的就停止,需要用“.*?”。如“I.*?e”,就會得到第二種結(jié)果。這種匹配方式被稱為懶惰匹配,而原本盡可能長的方式被稱為貪婪匹配。

最后留一道習題:

從下面一段文本中,匹配出所有s開頭,e結(jié)尾的單詞。

site sea sue sweet see case sse ssee loses.

恭喜你在Python自學的道路上又堅持了一天,今天我們繼續(xù)了解了Python中的相關(guān)內(nèi)容,是否對“.”“*”"\S""r""?"這些感到暈頭轉(zhuǎn)向呢?將我們的每節(jié)課中的每一個案例都進行實際操作練習,還可以再找些其他練習進行實踐操作,你就會理解、掌握他們哦,更多相關(guān)內(nèi)容,我們下節(jié)繼續(xù)分享。

好啦,今天的分享到這里就結(jié)束了,希望大家能夠持續(xù)關(guān)注馬哥教育官網(wǎng),每天都會有大量優(yōu)質(zhì)內(nèi)容與大家分享!

聲明:文章來源于網(wǎng)絡(luò),侵刪!

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計算運維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓機構(gòu)!

    1. 主站蜘蛛池模板: 潞西市| 潼关县| 合肥市| 龙海市| 扎兰屯市| 宜宾县| 和硕县| 高淳县| 沅江市| 英山县| 临朐县| 建宁县| 巴里| 泰顺县| 内黄县| 东丽区| 东莞市| 固原市| 普陀区| 磐安县| 昌邑市| 梓潼县| 尖扎县| 正宁县| 中西区| 北辰区| 麦盖提县| 黎城县| 班玛县| 河池市| 滨海县| 石河子市| 黎平县| 武义县| 宾川县| 鞍山市| 嘉善县| 青冈县| 庄河市| 兰溪市| 枝江市|