激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - Python正則表達(dá)式教程之一:基礎(chǔ)篇

Python正則表達(dá)式教程之一:基礎(chǔ)篇

2020-09-22 09:10一根笨茄子 Python

正則表達(dá)式并不是Python的一部分。正則表達(dá)式是用于處理字符串的強(qiáng)大工具,擁有自己獨(dú)特的語法以及一個(gè)獨(dú)立的處理引擎,效率上可能不如str自帶的方法,但功能十分強(qiáng)大。下面這篇文章主要介紹了關(guān)于Python正則表達(dá)式基礎(chǔ)的相

前言

之前有人提了一個(gè)需求,我一看此需求用正則表達(dá)式最合適不過。考慮到之前每次使用正則表達(dá)式,都是臨時(shí)抱佛腳,于是這次我就一邊完成任務(wù)一邊系統(tǒng)的學(xué)習(xí)了一遍正則表達(dá)式。主要參考PyCon2016上的一個(gè)視頻Regular Expressions

我將分幾篇文章對正則表達(dá)式進(jìn)行總結(jié)。

以下是第一部分,基礎(chǔ): 

基礎(chǔ)部分

這里總結(jié)了正則表達(dá)式最基礎(chǔ)的用法,其中大部分內(nèi)容對我(以及大部分程序員)來說都是平時(shí)經(jīng)常用到的,所以我就一筆帶過了,只對其中的幾處用例子說明。 

     .           除了換行之外的其他所有字符

     ^           行首

     $           行尾

     [abcd]      abcd其中的一個(gè)字符

     [^abcd]     除了abcd之外的任意字符

     [a-d]       相當(dāng)于[abcd]

     [a-dz]      相當(dāng)于[abcdz]

     \b          單詞邊界

     \w          字母數(shù)字或下劃線 相當(dāng)于[a-zA-Z0-9_]

     \W          與\w相反

     \d          數(shù)字,相當(dāng)于[0-9]

     \D          與\d相反

     \s          空白字符,相當(dāng)于[ \t\n\r\f\v]

     \S          與\s相反

     {5}         在此之前的正則表達(dá)式部分(下同)準(zhǔn)確的出現(xiàn)5次

     {2,5}       ~出現(xiàn)2到5次

     {2,}        ~出現(xiàn)2次或多次

     {,5}        ~出現(xiàn)0到5次

     *          ~出現(xiàn)0次或多次

     ?          ~出現(xiàn)0次或1次

     +           ~出現(xiàn)1次或多次

     ABC|DEF     匹配ABC或者DEF

     \          轉(zhuǎn)義字符,如\表示匹配*,\$表示匹配$* 

\b、 \用以下幾個(gè)例子簡單說明一下: 

     \b:

?
1
2
3
4
5
6
7
8
>>> re.search(r'\bhello\b', 'hello')
<_sre.SRE_Match object; span=(0, 5), match='hello'>
>>> re.search(r'\bhello\b', 'hello world')
<_sre.SRE_Match object; span=(0, 5), match='hello'>
>>> re.search(r'\bhello\b', 'hello,world')
<_sre.SRE_Match object; span=(0, 5), match='hello'>
>>> re.search(r'\bhello\b', 'hello_world')
>>>

其實(shí)這里,\b大體上和\W一支,但是\b可以匹配行首行尾等非顯示類的字符,而\W不可以。 

     \:

?
1
2
3
4
>>> re.search(r'\$100', '$100')
<_sre.SRE_Match object; span=(0, 4), match='$100'>
>>> re.search(r'$100', '$100')
>>>

想要匹配那些在正則表達(dá)式中有特殊含義的字符,如$、^、*等,就需要用\進(jìn)行轉(zhuǎn)義。 

raw string:

另外,前面例子中,模式字符串(pattern)前面都加了一個(gè)r,這個(gè)r的意思是raw string,后面所接的字符串,Pyhton解釋器無需對其進(jìn)行轉(zhuǎn)義。因?yàn)椋琝在Python字符串中和正則表達(dá)式中都有特殊含義,所以如果不是raw string,那么要表達(dá)一個(gè)\字符,就需要四個(gè)\了(在Python解釋器中先轉(zhuǎn)義一次,2個(gè)\表示1個(gè)\,剩下2個(gè)\,在正則表達(dá)式中又轉(zhuǎn)義一次,最終剩下一個(gè)\)。例如:

?
1
2
3
4
5
6
7
8
9
10
11
12
>>> re.search(r'\bhello\b', 'hello')
<_sre.SRE_Match object; span=(0, 5), match='hello'>
>>> re.search('\bhello\b', 'hello')
>>> re.search('\\bhello\\b', 'hello')
<_sre.SRE_Match object; span=(0, 5), match='hello'>
 
>>> re.search('\\\\hello\\\\', '\\hello\\')
<_sre.SRE_Match object; span=(0, 7), match='\\hello\\'>
>>> re.search(r'\\hello\\', '\\hello\\')
<_sre.SRE_Match object; span=(0, 7), match='\\hello\\'>
>>> print('\\hello\\')
\hello\

總結(jié)

以上就是關(guān)于Python正則表達(dá)式之基礎(chǔ)的全部內(nèi)容了,有了這些知識(shí),正則表達(dá)式的基本運(yùn)用就沒什么問題了。對于一些特殊情況,還需要掌握另外一些高級用法,敬請期待后續(xù)文章。希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,如果有疑問大家可以留言交流。

原文鏈接:http://blog.guoyb.com/2017/02/27/python-regex/

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久最新免费视频 | 久久亚洲成人 | 亚洲欧美在线视频免费 | 久久精品一区二区三区国产主播 | 欧美国产成人在线 | 成人三级视频在线观看 | 孕妇体内谢精满日本电影 | 日韩精品中文字幕在线观看 | 密室逃脱第一季免费观看完整在线 | 91欧美视频 | 欧美国产一区二区三区 | 91精选视频在线观看 | 亚洲综合一区在线观看 | 日韩视频一二三 | 九九色网站 | 男人天堂免费 | 一本色道久久综合亚洲精品图片 | 日韩精品一二三 | 日日天日日夜日日摸 | 久久99精品久久久久久国产越南 | 综合99 | 欧美一级黑人 | 亚洲日本欧美 | 看免费5xxaaa毛片 | 国产精品嘿咻嘿咻在线播放 | 精品一区二区视频在线观看 | 成人在线观看一区二区三区 | 亚洲性在线视频 | 午夜免费网 | 午色影院| 午夜视频在线在免费 | 黑人一级片视频 | 精品久久久久久久久久中出 | 精品一区二区三区毛片 | 一二区电影 | 操操操操操 | 欧美激情在线播放 | 99视频观看 | 国产91久久久久 | 嫩草影院在线观看网站成人 | 久久精品亚洲一区二区三区观看模式 |