欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python正則表達式教程之一:基礎篇

 更新時間:2017年03月02日 10:13:26   作者:一根笨茄子  
正則表達式并不是Python的一部分。正則表達式是用于處理字符串的強大工具,擁有自己獨特的語法以及一個獨立的處理引擎,效率上可能不如str自帶的方法,但功能十分強大。下面這篇文章主要介紹了關于Python正則表達式基礎的相關資料,需要的朋友可以參考下。

前言

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

我將分幾篇文章對正則表達式進行總結。

以下是第一部分,基礎: 

基礎部分

這里總結了正則表達式最基礎的用法,其中大部分內容對我(以及大部分程序員)來說都是平時經常用到的,所以我就一筆帶過了,只對其中的幾處用例子說明。 

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

     ^           行首

     $           行尾

     [abcd]      abcd其中的一個字符

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

     [a-d]       相當于[abcd]

     [a-dz]      相當于[abcdz]

     \b          單詞邊界

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

     \W          與\w相反

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

     \D          與\d相反

     \s          空白字符,相當于[ \t\n\r\f\v]

     \S          與\s相反

     {5}         在此之前的正則表達式部分(下同)準確的出現(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

     \          轉義字符,如\表示匹配*,\$表示匹配$* 

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

     \b:

>>> 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') 
>>> 

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

     \:

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

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

raw string:

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

>>> 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\

總結

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

相關文章

最新評論