站長在線零基礎Python完全自學教程20:在Python中使用正則表達式完全解讀

2022-01-01 站長在線

收錄於話題 #python 70個

歡迎你來到站長學堂,學習站長在線出品的在線課程《零基礎 Python完全自學教程》今天給大家分享的是第20課《 在Python中使用正則表達式完全解讀》。本節課是一個大課,我分了這些知識點進行詳細講解:正則表達式的語法詳解、匹配字符串的3個方法詳解、使用正則表達式的sub()方法替換字符串詳解、使用正則表達式的split()方法分割字符串詳解。


20.1、Python中正則表達式的語法詳解


關於Python中的正則表達式,準備分兩個知識點講完,今天來講解正則表達式的語法。

正則表達式的概念:正則表達式(regular expression,簡稱regex或者RE),也稱為歸則表達式。通常用來檢索、替換符合某些規則的文本。正則表達式就是記錄文本規則的代碼。

20.1.1、行定位符

行定位符就是用來描述字符串的邊界。「^」表示行的開始;「$」表示行的結尾。

例如:

One is All    

All is One 

^One該表達式表示要匹配字符串One的開始位置是行頭,如One is All就可以匹配,而All is One則不匹配。但如果使用:

One$則All is One可以匹配,而One is All不能匹配。如果要匹配的字符串可以出現在字符串的任意部分,那麼可以直接寫成:

One這樣,兩個字符串就都可以匹配了。

20.1.2、元字符

元字符就是在正則表達式中具有特殊意義的專用字符。

剛才我們所說的「^」和「$」就是元字符,在Python有下面常用元字符:.、\w、\W、\s、\S、\d、\D、\b、^、$。

各種元字符及其說明如下:

.:匹配除換行符以外的任意字符

\w:匹配字母或數字或下劃線或漢字

\W:匹配特殊字符,即非字母、非數字、非漢字

\s:匹配任意的空白符

\S:匹配非空白

\d:匹配數字

\D:匹配非數字,即不是數字

\b:匹配單詞的開始或結束

^:匹配字符串的開始

$:匹配字符串的結束

我們來看一個例子:

\byi\w*\b

匹配以字母yi開頭的單詞,先匹配單詞開始處(\b),然後匹配字母yi,接著匹配任意數量的字母或數字(\w*),最後匹配單詞結束處(\b)。該表達式可以匹配如「yibenshu」「saneryi」「haoyige」「yi12345」等。

20.1.3、限定符

在上面的元字符的例子中,使用「\w*」匹配任意數量的字母或數字。如果想匹配特定數量的數字,該如何表示呢?正則表達式為我們提供了限定符(指定數量的字符)來實現該功能。

例如,匹配6位QQ號可用如下表達式:

^\d{6}$

常用的限定符如下所示:*、+、?、{n} 、{n,}、{n,m}、[] 。

各種限定符及說明及舉例如下:

* :匹配前面的字符零次或更多次。例如「zo*」能匹配「z」 「zo」以及「zoo」,「*」等效於「{0,}」

+ :匹配前面的字符一次或更多次。例如「zo+」能匹配「zo」以及「zoo」,但不能匹配「z」,「+」等效於"{1,}」

? :匹配前面的字符零次或一次。例如「do(es)?」可以匹配 「do」或 「does」中的「do」,「?」等效 於 「{0,1}」

{n} :匹配前面的字符n次。例如「o{2}」不能匹配「Bob」中的「o」,但是能匹配「food」 中的兩個 o

{n,} :匹配前面的字符n次或更多次。例如「o{2,}」不能匹配「Bob」中的「o」,但能匹配「foooood」中的所有o, 等效於「o+」,「o{0,}」則等效於「o*」

{n,m} :匹配前面的字符n到m次。其中 n<=m。最少匹配 n 次且最多匹配 m 次。例如「o{1,3}」將匹配「fooooood" 中的前三個「o」,「o{0,l}」等效於「0?」。注意在逗號和兩個數之間不能有空格

20.1.4、字符集

正則表達式查找數字和字母是很簡單的,因為已經有了對應這些字符集合的元字符(如\d,\w),但是如果要匹配沒有預定義元字符的字符集合(比如元音字母a, e, i, o, u),應該怎麼辦?很簡單,只需要在方括號裡列出它們就行了,像[aeiou]就匹配任何一個英文元音字母。

[xyz]表示匹配裡面的任意一個字符。

[a-z]字符範圍,匹配指定範圍內的任意字符。例如「[a-z]」可以匹配「a」到「z」範圍內的任意小寫字母字符

[.?!]匹配標點符號「.」、「?」或「!」。也可以輕鬆地指定一個字符範圍,像[0-9]代表的含義與\d就是完全一致的:代表一位數字;同理,[a-z0-9A-Z_]也完全等同於\w(如果只考慮英文的話)。

要想匹配給定字符串中任意一個漢字,可以使用[\u4e00-\u9fa5];如果要匹配連續多個漢字,可以使用[\u4e00-\u9fa5]+。

20.1.5、排除字符

上方的字符集是匹配符合指定字符集的字符串。這裡的排除字符,剛剛相反。排除字符就是匹配不符合指定字符集的字符串。在正則表達式中用「^」表示。我們在最開始的行定位符中也說到了「^」,放在開頭,在這裡放在方括號[]裡面,表示排除的意思。如:

[^a-zA-Z]表示用於一個匹配非字母的字符。

20.1.6、選擇字符

Python中的選擇字符,包含著條件選擇的邏輯,在這裡使用「|」來表示。該字符可以理解為「或」。

如中國人的身份證號碼長度為15位或者18位。如果為15位,則全為數字;如果為18位,前17位為數字,最後一位是校驗位,可能為數字或字符X。

匹配身份證的表達式可以寫出如下方式:

(^\d{15}$)|(^\d{18}$)|(^\d{17})(\d|X|x)$

該表達式的意思是可以匹配15位數字,或者18位數字,或者17位數字和最後一位。最後一位可以是數字或者是X或者是x。

20.1.7、轉移字符

正則表達式中的轉義字符(\)和Python中的大同小異,都是將特殊字符(如「.」「?」「\」等)變為普通的字符。

舉一個IP位址的實例,用正則表達式匹配如127.0.0.1這樣格式的IP位址。如果直接使用點字符,格式為:

[1-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}

這顯然不對,因為「.」可以匹配一個任意字符。這時,不僅是127.0.0.1這樣的IP,連127101011這樣的字串也會被匹配出來。所以在使用「.」時,需要使用轉義字符(\)。修改後,上面的正則表達式格式為:

[1-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}

站長在線提醒你:括號在正則表達式中也算是一個元字符。

20.1.8、分組

通過上面選擇字符中的例子,可以看見小括號的作用有了一定的了解。

小括號字符的第一個作用就是可以改變限定符的作用範圍,如「|」「*」「^」等。來看下面的一個表達式。

 (mon|ma)th

這個表達式的意思是匹配單詞month或math,如果不使用小括號,那麼就變成了匹配單詞mon和math了。

小括號的第二個作用是分組,也就是子表達式。例如(\.[0-9]{1,3}){3},就是對分組(\.[0-9]{1,3})進行重複操作。

20.1.9、在Python中使用正則表達式語法

在Python中使用正則表達式時,是將其作為模式字符串使用的。例如,將匹配不是字母的一個字符的正則表達式表示為模式字符串,可以使用下面的代碼:

 '[^a-zA-Z]'

而如果將匹配以字母m開頭的單詞的正則表達式轉換為模式字符串,則不能直接在其兩側添加引號定界符,例如,下面的代碼是不正確的。

'\bm\w*\b'

而是需要將其中的「\」進行轉義,轉換後的代碼為:

'\\bm\\w*\\b'

由於模式字符串中可能包括大量的特殊字符和反斜槓,所以需要寫為原生字符串,即在模式字符串前加r或R。例如,上面的模式字符串採用原生字符串表示就是:

r'\bm\w*\b'

在編寫模式字符串時,並不是所有的反斜槓都需要進行轉換。例如,前面編寫的正則表達式「^\d{6}$」中的反斜槓就不需要轉義,因為其中的\d並沒有特殊意義。不過,為了編寫方便,本教程所寫正則表達式都採用原生字符串表示。

20.2、在Python中匹配字符串的3個方法詳解


匹配字符串可以使用re模塊提供的match()、search()和findall()等方法。下面分別進行介紹。

20.2.1、使用match()方法進行匹配

match()方法用於從字符串的開始處進行匹配,如果在起始位置匹配成功,則返回Match對象,否則返回None。其語法格式如下:

re.match(pattern, string, [flags])

其中,相關參數說明如下:

pattern:表示模式字符串,由要匹配的正則表達式轉換而來。

string:表示要匹配的字符串。

flags:可選參數,表示標誌位,用於控制匹配方式,如是否區分字母大小寫。

常用的標誌位及其說明:

re.A或ASCII  對於\w、\w、\b、\B、\d、\B、\d、\D、]s、\S進行ASCII匹配(僅適用於Python3)

re.I或IGNORECASE 使匹配對大小寫不敏感

re.L 做本地化識別(locale-aware)匹配

re.M或MULTILINE 多行匹配,影響 ^ 和 $

re.S或DOTALL 使 . 匹配包括換行在內的所有字符

re.U或UNICODE 根據Unicode字符集解析字符。這個標誌影響 \w, \W, \b, \B.

re.X或VERBOSE 該標誌通過給予你更靈活的格式以便你將正則表達式寫得更易於理解。

例如,匹配字符串是否以「zz_」開頭,不區分字母大小寫,代碼如下:

import re
pattern = r'zz_\w+'                    # 模式字符串
string = 'ZZ_MALL zz_mall'             # 要匹配的字符串
match = re.match(pattern,string,re.I)  # 匹配字符串,不區分大小寫
print(match)                           # 輸出匹配結果
string = '項目名稱 ZZ_MALL zz_mall' # 要匹配的字符串
match = re.match(pattern,string,re.I)  # 匹配字符串,不區分大小寫
print(match)                           # 輸出匹配結果

運行結果如下:

<re.Match object; span=(0, 7), match='ZZ_MALL'>
None
>>> 

從上面的執行結果中可以看出,字符串「ZZ_MALL」是以「zz_」開頭,所以返回一個Match對象,而字符串「項目名稱 ZZ_MALL zz_mall」不是以「zz_」開頭,所以返回None。這是因為match()方法從字符串的開始位置開始匹配,當第一個字母不符合條件時,則不再進行匹配,直接返回None。

Match對象中包含了匹配值的位置和匹配數據。其中,要獲取匹配值的起始位置可以使用Match對象的start()方法;要獲取匹配值的結束位置可以使用end()方法;通過span()方法可以返回匹配位置的元組;通過string屬性可以獲取要匹配的字符串。例如下面的代碼:

import re
pattern = r'zz_\w+'                    # 模式字符串
string = 'ZZ_MALL zz_mall'             # 要匹配的字符串
match = re.match(pattern,string,re.I)  # 匹配字符串,不區分大小寫
print('匹配值的起始位置: ',match.start())
print('匹配值的結束位置: ',match.end())
print('匹配位置的元組: ',match.span())
print('要匹配的字符串: ',match.string)
print('匹配數據: ',match.group())

運行結果如下:

匹配值的起始位置:  0
匹配值的結束位置:  7
匹配位置的元組:  (0, 7)
要匹配的字符串:  ZZ_MALL zz_mall
匹配數據:  ZZ_MALL
>>> 

下面實例,講解一個判定的手機號碼是不是有效的中國移動的號碼。

import re  # 導入Python的re模塊
pattern = r'(13[4-9]\d{8})|(15[01289]\d{8})$'
mobile = '13800000000'
match = re.match(pattern,mobile)  # 進行模式匹配
if match == None:  # 判斷是否為None,為真表示匹配失敗
    print(mobile,'不是有效的中國移動手機號碼。')
else:
    print(mobile,'是有效的中國移動手機號碼。')
mobile = '13100000000'
match = re.match(pattern,mobile)  # 進行模式匹配
if match == None:    # 判斷是否為None,為真表示匹配失敗
    print(mobile,'不是有效的中國移動手機號碼。')
else:
    print(mobile,'是有效的中國移動手機號碼。')

運行結果如下:

13800000000 是有效的中國移動手機號碼。
13100000000 不是有效的中國移動手機號碼。
>>> 

20.2.2、使用search()方法進行匹配

search()方法用於在整個字符串中搜索第一個匹配的值,如果在起始位置匹配成功,則返回Match對象,否則返回None。其語法格式如下:

re.search(pattern, string, [flags])

其中,相關參數說明如下:

pattern:表示模式字符串,由要匹配的正則表達式轉換而來。

string:表示要匹配的字符串。

flags:可選參數,表示標誌位,用於控制匹配方式,如是否區分字母大小寫。常用的標誌前面說了。

例如,搜索第一個以「zz_」開頭的字符串,不區分字母大小寫,代碼如下:

import re
pattern = r'zz_\w+'                    # 模式字符串
string = 'ZZ_MALL zz_mall'             # 要匹配的字符串
match = re.search(pattern,string,re.I) # 匹配字符串,不區分大小寫
print(match)                           # 輸出匹配結果
string = '項目名稱 ZZ_MALL zz_mall'    # 要匹配的字符串
match = re.search(pattern,string,re.I) # 匹配字符串,不區分大小寫
print(match)                           # 輸出匹配結果

運行結果如下:

<re.Match object; span=(0, 7), match='ZZ_MALL'>
<re.Match object; span=(5, 12), match='ZZ_MALL'>
>>> 

20.2.3、使用findall()方法進行匹配

findall()方法用於在整個字符串中搜索所有符合正則表達式的字符串,並以列表的形式返回。如果匹配成功,則返回包含匹配結構的列表,否則返回空列表。其語法格式如下:

re.findall(pattern, string, [flags])

其中,相關參數說明如下:

pattern:表示模式字符串,由要匹配的正則表達式轉換而來。

string:表示要匹配的字符串。

flags:可選參數,表示標誌位,用於控制匹配方式,如是否區分字母大小寫。常用的標誌上面有了。

例如,搜索以「zz_」開頭的字符串,不區分字母大小寫,代碼如下:

import re
pattern = r'zz_\w+'                    # 模式字符串
string = 'ZZ_MALL zz_mall'             # 要匹配的字符串
match = re.findall(pattern,string,re.I)# 匹配字符串,不區分大小寫
print(match)                           # 輸出匹配結果
string = '項目名稱 ZZ_MALL zz_mall'    # 要匹配的字符串
match = re.findall(pattern,string) # 匹配字符串,區分大小寫
print(match)                           # 輸出匹配結果

運行結果為:

['ZZ_MALL', 'zz_mall']
['zz_mall']
>>> 

上方下面這個結果只有一個,因為我使用了默認的設置,進行區分大小寫了。

20.3、在Python中使用正則表達式的sub()方法替換字符串詳解


在Python中使用正則表達式的sub()方法替換字符串。其語法格式如下:

re.sub(pattern, repl, string, count=0, flags=0)

參數說明如下:

pattern:表示模式字符串,由要匹配的正則表達式轉換而來。

repl:表示替換的字符串。

string:表示要被查找替換的原始字符串。

count:可選參數,表示模式匹配後替換的最大次數,默認值為0,表示替換所有的匹配。

flags:可選參數,表示標誌位,用於控制匹配方式,如是否區分字母大小寫。

例如:

import re
a = re.sub(r'hello', '你好', 'hello Python')
print(a)

運行結果如下:

你好 Python
>>> 

我們再來看一個替換的例子:

import re
def replace_num(str):
  numDict = {'0':'〇','1':'一','2':'二','3':'三','4':'四','5':'五','6':'六','7':'七','8':'八','9':'九'}
  print(str.group())
  return numDict[str.group()]
my_str = '2021年12月10號'
a = re.sub(r'(\d)', replace_num, my_str)
print(a) #每次匹配一個數字,執行函數,獲取替換後的值

運行結果為:

2
0
2
1
1
2
1
0
二〇二一年一二月一〇號
>>> 

好了,到此為止,在Python中使用正則表達式的sub()方法替換字符串詳解就講解完畢了,本知識點內容比較少,希望不會難到大家。

20.4、在Python中使用正則表達式的split()方法分割字符串詳解


使用正則表達式分割字符串

在Python中使用正則表達式的split()方法用於實現根據正則表達式分割字符串,並以列表的形式返回。其作用與《在Python中使用split()方法分割、使用join()方法合併字符串詳解》介紹的字符串對象的split()方法類似,所不同的就是分割字符由模式字符串指定。其語法格式如下:

re.split(pattern, string, [maxsplit], [flags])

其中,相關參數說明如下:

pattern:表示模式字符串,由要匹配的正則表達式轉換而來。

string:表示要匹配的字符串。

maxsplit:可選參數,表示最大的拆分次數。

flags:可選參數,表示標誌位,用於控制匹配方式,如是否區分字母大小寫。

示例代碼:

import re
pattern = r'/'                         # 定義分隔符
URL = 'WWW.olzz.com/xuetang/python'    # 需要拆分的字符串
result = re.split(pattern, URL)        # 以pattern的值 分割字符串
print(result)

運行結果為:

['WWW.olzz.com', 'xuetang', 'python']
>>> 

到此為止,在Python中使用正則表達式的split()方法分割字符串詳解,就講解完畢了,有不懂的可以留言哦!

相關閱讀:

站長百科詞條:Python (知識匯總)

《零基礎Python完全自學教程》目錄 

1、認識python

2、安裝python及寫第一個Python程序

3、Python開發工具介紹

4、Python語法特點

5、Python中的變量

6、Python中的基本數據類型

7、Python中的基本輸入和輸出

8、Python中常用的運算符

9、Python中運算符的優先級和條件表達式

10、Python中的三大程序結構

11、Python中的選擇語句

12、Python中的循環語句

13、Python中的break語句、continue語句和pass語句

14、Python中的序列知識詳解

15、Python中的列表

16、Python中的元組系列知識

17、Python中的字典完全解讀

18、Python中的集合完全解讀

19、Python中字符串完全解讀

20、Python中使用正則表達式完全解讀

相關焦點

  • 妙用正則表達式--Python中的re模塊
    Python中的re模塊可以方便地引入正則表達式。利用正則表達式,我們可以對文本內容進行精確快捷地匹配和提取。與Stata相比,正則表達式的元字符是通用的,不同的是函數。re庫中有若干個函數各司其職,在上一篇推文《Python標準庫re:正則表達式》中我們介紹了re庫中的三個常用函數,現在小編將從實用的角度再介紹幾個常用的函數。
  • 5分鐘速覽python正則表達式常用函數
    本文不過多展開正則表達式相關語法,僅簡要介紹python中正則表達式常用函數及其使用方法,以作快速查詢瀏覽。Re模塊是python的內置模塊,提供了正則表達式在python中的所有用法,默認安裝位置在python根目錄下的Lib文件夾(如 ..\Python\Python37\Lib)。
  • 用正則表達式校驗手機號,郵箱就是流弊【python爬蟲入門進階】(08)
    Java高並發編程入門本文重點:這篇文章主要學習正則表達式以及re模塊的使用。學好正則表達式,啥難匹配的內容都給我匹配上【python爬蟲入門進階】(07) 還沒看的小夥伴趕緊去看看哦!!!這篇文章主要將介紹正則表達式的一些實戰小案例。比如:用正則表達式校驗郵箱,手機號等等。驗證手機號手機號的格式一般是首位是1,第二位是34578中間的任意一個數,最後9位是隨機數字。
  • python測試開發django-11.模型models詳解
    配置資料庫django配置mysql資料庫教程參考前面一篇https://www.cnblogs.com/yoyoketang/p/9997520.html需先安裝mysql資料庫驅動 pip install mysqlclient==1.3.10settings.py 文件中找到 DATABASES 配置項, django
  • python:pandas入門詳細教程
    中都可以實現類比Excel的數據透視表功能,Excel中最為強大的數據分析工具之一是數據透視表,這在pandas中也可輕鬆實現自帶正則表達式的字符串向量化操作,對pandas中的一列字符串進行通函數操作,而且自帶正則表達式的大部分接口常用的數據分析與統計功能,包括基本統計量、分組統計分析等集成matplotlib的常用可視化接口,無論是series還是dataframe,均支持面向對象的繪圖接口
  • 13-python爬蟲之JSON操作
    JSONJSON(JavaScript Object Notation) 是一種輕量級的數據交換格式;適用於進行數據交互的場景,比如網站前臺與後臺之間的數據交互Python 3.x中自帶了JSON模塊,直接import json就可以使用了。
  • python數據科學系列:pandas入門詳細教程
    中都可以實現類比Excel的數據透視表功能,Excel中最為強大的數據分析工具之一是數據透視表,這在pandas中也可輕鬆實現自帶正則表達式的字符串向量化操作,對pandas中的一列字符串進行通函數操作,而且自帶正則表達式的大部分接口常用的數據分析與統計功能,包括基本統計量、分組統計分析等集成matplotlib的常用可視化接口,無論是series還是dataframe,均支持面向對象的繪圖接口
  • C++正則表達式
    要求字符出現0次或1次{n}:字符{n}要求字符出現n次{n,}:字符{n,}要求字符出現n到多次{n,m}:字符{n,m}要求字符出現n到m次C++支持的正則C++可以支持ECMAScript支持的正則,也可以支持grep支持的正則等等。
  • Python數據科學系列:Pandas 入門詳細教程
    Excel的數據透視表功能,Excel中最為強大的數據分析工具之一是數據透視表,這在pandas中也可輕鬆實現自帶正則表達式的字符串向量化操作,對pandas中的一列字符串進行通函數操作,而且自帶正則表達式的大部分接口常用的數據分析與統計功能,包括基本統計量、分組統計分析等集成matplotlib的常用可視化接口,無論是series還是dataframe,均支持面向對象的繪圖接口正是由於具有這些強大的數據分析與處理能力
  • 乾貨|Python滲透測試工具庫
    ://github.com/PowerShellMafia/PowerSploitPowershell tools合集:https://github.com/clymb3r/PowerShellpowershell的mimikittenz:https://github.com/putterpanda/mimikittenz域滲透教程
  • 史詩級Python教材出版了!
    本書覆蓋面非常廣,包括計算機基礎常識、Python語言的基本要素和語法、Python生態、正則表達式、數據分析和可視化、網絡爬蟲、面向對象程序設計入門、tkinter圖形界面程序設計等內容。其中,正則表達式、網絡爬蟲、圖形界面等是大多數Python基礎教材不涉及的內容。
  • 使用pdb進行Python調試(下篇)
    顯示表達式與使用p和pp列印表達式類似,你可以使用命令display [expression]告訴pdb自動顯示表達式的值,如果它改變,執行停止。使用命令undisplay [expression]來清除顯示表達式。以下是這兩個命令的語法和描述:
  • Python | Python交互之mongoDB交互詳解
    前言本篇為mongodb篇,包含實例演示,mongodb高級查詢,mongodb聚合管道,python交互等內容。:在find條件文檔中寫入多個欄位條件即可or:使用$or舉個慄子:db.xianyu.find({name:"xianyuplus",age:20})db.xianyu.find({$or:[{name:"xianyuplus"},{age:20}]})db.xianyu.find({$or:[{age
  • python測試開發django-104.form表單正則校驗(RegexValidator)
    max_length=16, min_length=6, required=True, label="密碼", widget=forms.PasswordInput
  • 【python3.10安裝教程】在 Windows 上使用 Python3.10最新版本
    3.6 版更變: Python中啟用了對長路徑的支持。4.1.3. 安裝排除使用者介面安裝程序UI中的所有選項也可以從命令行指定,允許腳本安裝程序在許多機器上複製安裝,而無需用戶交互。還可以在不禁用UI的情況下設置這些選項,以更改一些默認值。要完全隱藏安裝程序UI並靜默安裝Python,請使用 /quiet 選項。
  • Python統計分析時代已經來臨
    用python實現了一個統計方法,其中用到了ctypes,multiprocess。之後一個項目要做方法比較,又用回R,發現一些bioconductor上的包已經默認用parallel了。(但那個包還是很慢,一下子把所有線程都用掉了,導致整個電腦使用不能,看網頁非常卡~)2. 用python pandas做了一些數據整理工作,類似資料庫,兩三個表來回查、匹配。
  • Python黑帽編程1.3 Python運行時與包管理工具
    我們的系列課程推薦使用2.7,所有代碼在3.0以上版本的環境中運行結果未知。你也可以選擇使用最新的Python版本來編寫程序,但是也一定要單獨安裝2.7版本,保證學習進度。 下載並保存文件。下面我們說說在不同系統下如何安裝python,當然安裝Python的方法也很多,恕我不能一一道來。
  • Python也能操作MongoDB資料庫!
    大家也可以找到之前的Robomongo,完全免費的版本使用。另外,還可以進行正則匹配查詢。, 'gender': 'male'}{'_id': ObjectId('6102b213c5ab8729e0959bc5'), 'id': '010', 'name': 'Jordan10', 'age': 23, 'gender': 'Female'}'''這裡使用$regex來指定正則匹配,^M.
  • 一個純python、快速、可擴展的Markdown解釋器
    在下面的例子中,我們使用HTMLRenderer來渲染AST,它將HTMLBlock和HTMLSpan加入正常的解析過程中。mistletoe在解析過程中使用正則表達式搜索跨級token。作為一個複習,Github wiki看起來像這樣:[[alternative text | target]]。
  • 121 python|第一部分:python核心(五 )容器2
    作用:列表推導式雖然看起來不符合常規,因為它在方括號內部使用for循環,但是它卻起到了讓代碼更加簡潔的作用,尤其是它可以通過「判斷條件」來決定什麼情況下插入新的值。python中的集合運算主要包含交集、併集和補集。