最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python正則表達(dá)式 匹配反斜杠的操作方法

 更新時(shí)間:2020年08月07日 08:48:24   作者:parhats  
這篇文章主要介紹了python正則表達(dá)式 匹配反斜杠的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

python正則表達(dá)式 匹配反斜杠

正則 需要把原始字符串不被轉(zhuǎn)義的條件下傳遞給正則模塊,正則再去轉(zhuǎn)義。
r表示r后面的字符串為原始字符串,防止計(jì)算機(jī)將 \ 理解為轉(zhuǎn)義字符。
r'^\\$' 首先按照原始字符串給到compile函數(shù) ,正則再把r'^\\$'中的\`翻譯成\

backslash='\\'
print(backslash)
regular_backslash=re.compile(r'^\\$')
print(regular_backslash.search(regular_backslash)

金額5.00中的 . 要使用 \.來(lái)匹配 。因?yàn)檎齽t中.匹配可以所有的字符, 需要\.表示點(diǎn)。

import re
#匹配日期
date_regular = re.compile(r'^(\d{4})-(\d{2})-(\d{2})$')
print(date_regular.search('2017-33-12'))

#匹配金額 比如 5 5.00等金額 
money_regular = re.compile(r'^(\d{1,})\.(\d{1,})$|^(\d{1,})$')
print(money_regular.match('5.8'))

#匹配純數(shù)字
number_regular = re.compile(r'^\d{1,}$')
print(number_regular.search('5'))

PS:下面看下Python字符串和正則表達(dá)式中的反斜杠(‘\‘)問(wèn)題

在Python普通字符串中

在Python中,我們用''來(lái)轉(zhuǎn)義某些普通字符,使其成為特殊字符,比如

In [1]: print('abc\ndef') # '\n'具有換行的作用
abc
defg

In [2]: print('abc\tdef') # '\t'具有制位符的作用      
abc defg

我們還可以用''來(lái)轉(zhuǎn)義特殊字符,使其成為普通字符,比如

In [3]: print('abc\\tdef') # 使'\'成為一個(gè)普通的字符,沒(méi)有轉(zhuǎn)義作用
abc\tdef

In [4]: print('abc\'tdef') # 使'''成為一個(gè)普通的字符,不再需要和另一半單引號(hào)'''配對(duì)       
abc'tde

所以,在python普通字符串中,我們不能以奇數(shù)個(gè)''結(jié)尾,這樣會(huì)導(dǎo)致結(jié)束的的引號(hào)轉(zhuǎn)義成一個(gè)純字符,從而使得這段字符串沒(méi)有引號(hào)來(lái)結(jié)束。

在Python原生字符串中

我們?cè)谧址凹右粋€(gè)'r'來(lái)表示原生字符串,比如r'abc'。原生字符串中的特殊字符的特殊含義將會(huì)被剝奪掉,如下

In [5]: print(r'abc\ndefg') # '\n'沒(méi)有換行的作用,僅僅是一個(gè)普通的字符串       
abc\ndefg

In [6]: print(r'abc\tdefg') # '\t'沒(méi)有制位符的作用,僅僅是一個(gè)普通的字符串     
abc\tdef

這里有一個(gè)奇怪的問(wèn)題,在原生字符串中,雖然''成為了一個(gè)普通的字符串,但我們同樣不能以奇數(shù)個(gè)''字符串結(jié)尾,這是因?yàn)镻ython正則表達(dá)式的原因,在正則表達(dá)式中我們將會(huì)解釋這個(gè)問(wèn)題。

在Python(regular express)正則表達(dá)式中

Python正則表達(dá)式中會(huì)有一些不同,正則表達(dá)式中指定了一些元字符(metacharacter),如下. ^ $ * + ? { } [ ] \ | ( )
它們都具有特殊的含義,''也屬于元字符。''既屬于Python中的特殊字符,也屬于正則中的元字符,所以使用時(shí)得非常小心。那么在正則中,''的作用是什么呢?我們看一個(gè)例子

In [7]: re.search('.', 'sd.f')        
Out[7]: <_sre.SRE_Match object; span=(0, 1), match='s'>

In [8]: re.search('\.', 'sd.f')       
Out[8]: <_sre.SRE_Match object; span=(2, 3), match='.'>In [9]: re.search('\n', 'sdfd\nfds')      Out[9]: <_sre.SRE_Match object; span=(4, 5), match='\n'>

"""
'.'作為一個(gè)元字符,它的特殊含義是匹配任意一個(gè)字符,
而當(dāng)我們?cè)谄淝懊婕?\'后,它的特殊含義消失了,匹配到的是'.';
而且'\'依然可以把Python中某些字符轉(zhuǎn)義成特殊字符。
"""

所以,''的作用是剝奪元字符的特殊含義,使其成為一個(gè)Python字符,所以它還是會(huì)具有在Python普通字符串中的轉(zhuǎn)義作用,比如'\n'依然表示換行。所以,''既是正則中的一個(gè)元字符,又是Python中的一個(gè)特殊字符。那么我們?cè)撊绾纹ヅ涞郊冏址?'(無(wú)任何特殊意義)?

在正則中,''的作用是把元字符轉(zhuǎn)義成Python字符串文字(a Python string literal),所以正則中的'\'其實(shí)是其實(shí)是Python字符中的'',它仍然還具有轉(zhuǎn)義作用,所以在正則中我們還得對(duì)每個(gè)''再進(jìn)行轉(zhuǎn)義一次,即'\\',這樣就可以匹配到純字符''了??聪旅胬?/p>

In [10]: re.search('\\\\', 'fsd\nfds') # 目標(biāo)字符串中沒(méi)有純字符'\',所以匹配為空

In [11]: re.search('\\\\', 'fsd\\nfds')           
Out[11]: <_sre.SRE_Match object; span=(3, 4), match='\\'> # Python字符串中,'\\'就是純字符'\'

在re中反復(fù)的使用'',這可能會(huì)生成大量的連續(xù)的反斜杠,從而導(dǎo)致某些字符串難以理解。解決的辦法是用Python原生字符串來(lái)書(shū)寫(xiě)正則表達(dá)式,如下

In [12]: re.search(r'\\', 'fsd\\nfds') # 兩個(gè)'\\'就可以匹配到純字符'\'
Out[12]: <_sre.SRE_Match object; span=(3, 4), match='\\'>

另外,當(dāng)我們用原生字符串來(lái)書(shū)寫(xiě)正則表達(dá)式時(shí),Python字符中的特殊字符依然有效,比如

In [13]: re.search(r'\n', 'fsd\nfds')           
Out[13]: <_sre.SRE_Match object; span=(3, 4), match='\n'>
"""
在Python字符中,r'\n'僅僅表示純字符串'\n',沒(méi)有換行的作用;
在正則中,r'\n'依然還有換行的作用。
所以此時(shí)我們不能用奇數(shù)個(gè)'\'來(lái)結(jié)尾某個(gè)正則表達(dá)式,這樣導(dǎo)致結(jié)束的引號(hào)被轉(zhuǎn)義成一個(gè)純字符,無(wú)結(jié)束符號(hào)。
所以,在Python原生字符串中,我們也同樣規(guī)定不能用奇數(shù)個(gè)'\'來(lái)結(jié)尾。
"""

總結(jié)

到此這篇關(guān)于Python字符串和正則表達(dá)式中的反斜杠(‘\‘)問(wèn)題的文章就介紹到這了,更多相關(guān)Python字符串和正則表達(dá)式中的反斜杠(‘\‘)問(wèn)題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python使用Turtle模塊繪制國(guó)旗的方法示例

    Python使用Turtle模塊繪制國(guó)旗的方法示例

    這篇文章主要給大家介紹了關(guān)于Python使用Turtle模塊繪制國(guó)旗的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 解析django的csrf跨站請(qǐng)求偽造

    解析django的csrf跨站請(qǐng)求偽造

    本文主要介紹了解析django的csrf跨站請(qǐng)求偽造,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Python全棧之學(xué)習(xí)HTML

    Python全棧之學(xué)習(xí)HTML

    這篇文章主要為大家介紹了Python全棧之HTML,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • Python產(chǎn)生batch數(shù)據(jù)的操作

    Python產(chǎn)生batch數(shù)據(jù)的操作

    這篇文章主要介紹了Python產(chǎn)生batch數(shù)據(jù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • 淺析Python中生成器和迭代器的神奇力量

    淺析Python中生成器和迭代器的神奇力量

    在Python中,生成器和迭代器是實(shí)現(xiàn)惰性計(jì)算的兩種重要工具,它們可以幫助我們更有效地處理數(shù)據(jù)接下來(lái),小編就來(lái)為大家詳細(xì)介紹這兩種工具吧
    2023-07-07
  • python linecache 處理固定格式文本數(shù)據(jù)的方法

    python linecache 處理固定格式文本數(shù)據(jù)的方法

    今天小編就為大家分享一篇python linecache 處理固定格式文本數(shù)據(jù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Django drf請(qǐng)求模塊源碼解析

    Django drf請(qǐng)求模塊源碼解析

    APIView中的dispatch是整個(gè)請(qǐng)求生命過(guò)程的核心方法,包含了請(qǐng)求模塊,權(quán)限驗(yàn)證,異常模塊和響應(yīng)模塊,我們先來(lái)介紹請(qǐng)求模塊,對(duì)Django drf請(qǐng)求模塊源碼相關(guān)知識(shí)感興趣的朋友一起看看吧
    2021-06-06
  • 一文帶你掌握python中*星號(hào)的用法

    一文帶你掌握python中*星號(hào)的用法

    Python中的?*號(hào)是一個(gè)特殊的符號(hào),在其他編程語(yǔ)言中,它最廣為人知的用途就是作為乘法運(yùn)算的符號(hào),而在Python中,它的用途遠(yuǎn)不止如此,下面我們就來(lái)學(xué)習(xí)一下它的具體用法吧
    2023-10-10
  • python執(zhí)行g(shù)et提交的方法

    python執(zhí)行g(shù)et提交的方法

    這篇文章主要介紹了python執(zhí)行g(shù)et提交的方法,實(shí)例分析了Python通過(guò)get傳遞數(shù)據(jù)的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04
  • Python實(shí)現(xiàn)自動(dòng)收集參數(shù)的技巧分享

    Python實(shí)現(xiàn)自動(dòng)收集參數(shù)的技巧分享

    在Python中,充分利用函數(shù)參數(shù)的自動(dòng)收集和靈活處理,是寫(xiě)出高效且易維護(hù)代碼的關(guān)鍵之一,本文將深入研究Python函數(shù)參數(shù)的收集方式,感興趣的小伙伴可以了解下
    2023-12-12

最新評(píng)論

清水河县| 万源市| 桂阳县| 祁连县| 滨海县| 政和县| 满洲里市| 铜陵市| 新昌县| 新巴尔虎右旗| 师宗县| 清镇市| 石渠县| 股票| 平凉市| 加查县| 怀宁县| 元谋县| 石家庄市| 新闻| 新化县| 左云县| 永川市| 正镶白旗| 府谷县| 中阳县| 濮阳市| 江华| 惠安县| 吉水县| 南岸区| 子洲县| 岫岩| 湄潭县| 西和县| 白城市| 福泉市| 磐石市| 旬邑县| 定南县| 道孚县|