黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Python原始字符串(raw strings)用法實(shí)例

系統(tǒng) 2032 0

本文實(shí)例講述了Python原始字符串(raw strings)用法,分享給大家供大家參考。具體如下:
?
Python原始字符串的產(chǎn)生正是由于有正則表達(dá)式的存在。原因是ASCII 字符和正則表達(dá)式特殊字符間所產(chǎn)生的沖突。比如,特殊符號(hào)“\b”在ASCII 字符中代表退格鍵,但同時(shí)“\b”也是一個(gè)正則表達(dá)式的特殊符號(hào),代表“匹配一個(gè)單詞邊界”。

為了讓RE 編譯器把兩個(gè)字符“\b”當(dāng)成你想要表達(dá)的字符串,而不是一個(gè)退格鍵,你需要用另一個(gè)反斜線對(duì)它進(jìn)行轉(zhuǎn)義,即可以這樣寫(xiě):“\\b”。

但這樣做會(huì)把問(wèn)題復(fù)雜化,特別是當(dāng)你的正則表達(dá)式字符串里有很多特殊字符時(shí),就更容易令人困惑了。一般來(lái)說(shuō),原始字符串經(jīng)常被用于簡(jiǎn)化正則表達(dá)式的復(fù)雜程度。

事實(shí)上,很多Python 程序員在定義正則表達(dá)式時(shí)都只使用原始字符串。

下面的例子用來(lái)說(shuō)明退格鍵“\b” 和正則表達(dá)式“\b”(包含或不包含原始字符串)之間的區(qū)別:

復(fù)制代碼 代碼如下:
>>> m = re.match('\bblow', 'blow') # backspace, no match #退格鍵,沒(méi)有匹配>>> if m is not None: m.group()
...
>>> m = re.match('\\bblow', 'blow') # escaped \, now it works #用\轉(zhuǎn)義后,現(xiàn)在匹配了
>>> if m is not None: m.group()
...
'blow'
>>> m = re.match(r'\bblow', 'blow') # use raw string instead #改用原始字符串>>> if m is not None: m.group()
...
'blow'

你可能注意到我們?cè)谡齽t表達(dá)式里使用“\d”,沒(méi)用原始字符串,也沒(méi)出現(xiàn)什么問(wèn)題。那是因?yàn)锳SCII 里沒(méi)有對(duì)應(yīng)的特殊字符,所以正則表達(dá)式編譯器能夠知道你指的是一個(gè)十進(jìn)制數(shù)字。

原始字符串的這個(gè)特性讓一些工作變得非常的方便,比如正則表達(dá)式的創(chuàng)建。正則表達(dá)式是一些定義了高級(jí)搜索匹配方式的字符串,通常是由代表字符、分組、匹配信息、變量名和字符類(lèi)等的特殊符號(hào)組成。正則表達(dá)式模塊已經(jīng)包含了足夠用的符號(hào)。但當(dāng)你必須插入額外的符號(hào)來(lái)使特殊字符表現(xiàn)的像普通字符的時(shí)候,你就陷入了“字符數(shù)字”的泥潭!這時(shí)原始字符串就會(huì)派上用場(chǎng)了。

除了原始字符串符號(hào)(引號(hào)前面的字母“r”)以外,原始字符串跟普通字符串有著幾乎完全相同的語(yǔ)法。這個(gè)'r'可以是小寫(xiě)也可以是大寫(xiě),唯一的要求是必須緊靠在第一個(gè)引號(hào)前。在3個(gè)例子的第1個(gè)例子里面,我們需要一個(gè)反斜杠加一個(gè)“n”來(lái)而不是一個(gè)換行符。

復(fù)制代碼 代碼如下:
>>> '\n'
'\n'
>>> print '\n'
>>> r'\n'
'\\n'
>>> print r'\n'
\n

接下來(lái)的例子里,我們打不開(kāi)我們的README文件了,為什么?因?yàn)?\t'和'\r'被當(dāng)成不在我們的文件名中的特殊符號(hào),但它們實(shí)際上是文件路徑中的4個(gè)獨(dú)立的字符。
復(fù)制代碼 代碼如下:
>>> f = open('C:\windows\temp\readme.txt', 'r') Traceback (most recent call last):
File "", line 1, in ?
f = open('C:\windows\temp\readme.txt', 'r')IOError: [Errno 2] No such file or directory: 'C:\\win- dows\\temp\readme.txt'
>>> f = open(r'C:\windows\temp\readme.txt', 'r')>>> f.readline()
'Table of Contents (please check timestamps for last update!)\n'
>>> f.close()

希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論