第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

正則表達(dá)式為什么"\"(反斜杠)需要4個"\"(反斜杠)來轉(zhuǎn)義?

正則表達(dá)式為什么"\"(反斜杠)需要4個"\"(反斜杠)來轉(zhuǎn)義?

一只萌萌小番薯 2019-02-25 16:21:08
對于反斜杠"\"為什么不能直接使用"\\"來轉(zhuǎn)義,而是要使用4個反斜杠,這是網(wǎng)上搜出來的一個解釋,沒有看明白,求解釋一下? 與大多數(shù)編程語言相同,正則表達(dá)式里使用"\"作為轉(zhuǎn)義字符,這就可能造成反斜杠困擾。假如你需要匹配文本中的字符"\",那么使用編程語言表示的正則表達(dá)式里將需要4個反斜杠"\\\\":前兩個和后兩個分別用于在編程語言里轉(zhuǎn)義成反斜杠,轉(zhuǎn)換成兩個反斜杠后再在正則表達(dá)式里轉(zhuǎn)義成一個反斜杠. Python里的原生字符串很好地解決了這個問題,這個例子中的正則表達(dá)式可以使用r"\"表示。同樣,匹配一個"\\d"可以寫成r"\d"。有了原生字符串,你再也不用擔(dān)心是不是漏寫了反斜杠,寫出來的表達(dá)式也更直觀。
查看完整描述

5 回答

?
翻閱古今

TA貢獻(xiàn)1780條經(jīng)驗 獲得超5個贊

前兩個和后兩個分別用于在編程語言里轉(zhuǎn)義成反斜杠,

轉(zhuǎn)換成兩個反斜杠后再在正則表達(dá)式里轉(zhuǎn)義成一個反斜杠。

查看完整回答
反對 回復(fù) 2019-03-04
?
手掌心

TA貢獻(xiàn)1942條經(jīng)驗 獲得超3個贊

其實已經(jīng)描述的很清楚了,首先這個正則語句是一個字符串,而Python字符串里面表達(dá)一個反斜杠就要兩個反斜杠,所以其實這里給到正則解析器的時候其實只有一個反斜杠,而正則里,表達(dá)一個反斜杠又需要兩個反斜杠,所以總共需要四個。

查看完整回答
反對 回復(fù) 2019-03-04
?
瀟湘沐

TA貢獻(xiàn)1816條經(jīng)驗 獲得超6個贊

`r"\"` 會造成語法錯的。這樣做的目的是,r 字符串通常用于正則,而末尾出現(xiàn)單數(shù)個 `\` 的正則是有問題的,所以 Python 的 r 字符串不允許以單數(shù)個 `\` 結(jié)尾。

好吧,可惡的 markdown……看來只有這樣寫才會正常點……

查看完整回答
反對 回復(fù) 2019-03-04
?
瀟瀟雨雨

TA貢獻(xiàn)1833條經(jīng)驗 獲得超4個贊

首先,假設(shè)正則是這樣子的\d,由于Python將\字符看做是轉(zhuǎn)義字符,為了使Python將這一段里的右斜杠看成是普通字符,所以要對這個斜杠進(jìn)行轉(zhuǎn)義,成了\\d。

然后\\d由于要被放到文本里,如果直接用文本\\d的話,顯示出來的是文本\d,這樣直接把這個文本放到正則解析器里去的話,\d就會成為被正則解析器認(rèn)為是一個控制字符。所以文本里需要\\\\d。

具體如下:
字符串\\\\d中,第一和第三個右斜杠被Python視為轉(zhuǎn)義符號,所以實際字符串表示的是\\d。
此字符串\\d被傳入正則解析器,正則解析器的Python代碼將第一個\視為轉(zhuǎn)義符號,得到\d。

查看完整回答
反對 回復(fù) 2019-03-04
?
慕慕森

TA貢獻(xiàn)1856條經(jīng)驗 獲得超17個贊

在正則表達(dá)式中匹配反斜杠需要對反斜杠進(jìn)行轉(zhuǎn)義,這會導(dǎo)致\\。然后,為了在python(很多語言中)字符串中使用反斜杠,也必須對它進(jìn)行轉(zhuǎn)義,因此對兩個反斜杠進(jìn)行轉(zhuǎn)義就意味著總共會得到4個反斜杠。

查看完整回答
反對 回復(fù) 2019-03-04
  • 5 回答
  • 0 關(guān)注
  • 1725 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號