python中的反斜線問題

來源:互聯網
上載者:User

標籤:輸出   strong   防止   補充   pytho   href   解決   end   就是   

python本身使用 \ 來轉義一些特殊字元,比如在字串中加入引號的時候

s = ‘i\‘m superman‘print(s)    # i‘m superman

為了防止和字串本身的引號衝突,使用 \ 來轉義,一般情況下這個也不會引起什麼問題,但是當你要使用 \ 來轉義 \ 的時候,就比較混亂了,比如我們想要輸出一個 \ ,得寫兩個 \ ,否則會報語法錯誤,因為 \ 把後面的引號給轉義了,必須使用 \

# 錯誤寫法# print ‘\‘# 正確寫法print(‘\\‘)     # \# 原生字串print(r‘\\‘)    # \\

將 \ 轉義一下使其不具備轉義功能,才可以正確輸出,當使用原生字串的時候,輸出顯示了兩個 \ ,看起來好像是寫幾個輸出幾個的樣子,如果這樣想的話,你可以試一下,看能不能輸出奇數個 \。

補充—————————————————— python的原生字串不能以反斜線結尾的問題

Python的原生字串(raw string)是個很有用的東西,可以少寫很多反斜線(轉義符號)。
不過它有個著名的bug,就是不能以反斜線結尾,這讓人很無語。今天突然發現General Python FAQ裡有進行說明,並給出瞭解決辦法。

首先要澄清的是不是不能以反斜線結尾,而是不能以奇數個反斜線結尾。

其次,這個bug的原因是一些處理器(例如主要的Regex引擎)希望進行它們自己的反斜線轉義處理,而這些處理器不允許字串以未匹配的反斜線結尾。

最後,解決辦法就是把反斜線放在另一個字串裡,Python會自動進行合并:

dir = r"\this\is\my\dos\dir" "\\"
補充結束——————————————————

雖然原生字串不是很完美,但是它已經可以幫我們解決很大一部分的問題了。比如當你想匹配"\"的時候,原生字串可以讓你至少少寫一半的\,即節省代碼量,又增加了可讀性。

import re_string = ‘\\\\‘print(_string)  # \\# 字串for i in re.findall(‘\\\\‘, _string):    print(i)        # \    # \# 原生字串for i in re.findall(r‘\\‘, _string):    print(i)        # \    # \

 

python中的反斜線問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.