正表達式為高級的文本模式匹配,抽取,與/或文本形式的搜索和替換功能提供了基礎。簡而言之,正則表達式(簡稱regex)是由一些字符和特殊符號組成的字符串,它描述了模式的重複或者表達多個字符。python通過標準庫中的re模塊來支持正則表達式。
下圖是最常見的特殊符號和字符,也稱元字符,正是它給予正則表達式強大的功能和靈活性。
1.擇一匹配符號
表示擇一匹配的管道符號(|),鍵盤上的豎線,表示從多個模式中選擇其中一個的操作。它用於分割不同的正則表達式。所以擇一匹配有時候也被邏輯或(logical OR)。
2.匹配任意單個字符
點號(.)符號匹配除了換行符號\n以外的任何字符(python正則表達式有一個編譯標記【S或DOTALL】,該標記能夠推翻這個限制,使用點號能夠匹配換行符)。
3.從字符串起始或者結尾或者單詞邊界匹配
匹配字符串的開始位置,用脫字符(^)或者特殊字符\A(反斜槓和大寫字母A);匹配字符串的末尾位置用($)或者\Z。
例如:
^Good 表示任何以Good作為起始的字符串
/bin/tcsg$表示任何以bin/tcsg結尾的字符串
^sub:hi$表示任何由單獨的字符串sub:hi構成的字符串
特殊字符\b和\B可以用來匹配字符邊界。\b用於匹配一個單詞的邊界,這個單詞必須是起始的部分;而\B則匹配出現在一個單詞中間的字符。
正則表達式示例:
go表示任何包含go的字符串
\bgo表示任何以go開始的字符串
\bgo\b僅僅匹配單詞go
\Bgo 表示包含但是並不以go作為起始的字符串