與大多數程式語言相同,正規表示式裡使用"「作為轉義字元,這就可能造成反斜槓困擾。假如你需要匹配文字中的字元」",那麼使用程式語言表示的正規表示式裡將需要4個反斜槓"\":前兩個和後兩個分別用於在程式語言裡轉義成反斜槓,轉換成兩個反斜槓後再在正規表示式裡轉義成乙個反斜槓。
python裡的原生字串很好地解決了這個問題,有了原始字串,你再也不用擔心是不是漏寫了反斜槓,寫出來的表示式也更直觀。
#示例:
>>>import re
>>> mm = "c:\\a\\b\\c"
>>> mm
'c:\\a\\b\\c'
>>> print(mm)
c:\a\b\c
>>> print(mm)
c:\a\b\c
>>> re.match("c:\\\\",mm).group()
'c:\\'
>>> ret = re.match("c:\\\\",mm).group()
>>> print(ret)
c:\>>> ret = re.match("c:\\\\a",mm).group()
>>> print(ret)
c:\a
>>> ret = re.match(r"c:\\a",mm).group()
>>> print(ret)
c:\a
>>> ret = re.match(r"c:\a",mm).group()
traceback (most recent call last):
file "", line 1, in attributeerror: 'nonetype' object has no attribute 'group'
#相關格式字元
功能*匹配前乙個字元出現0次或者無限次,即可有可無
+匹配前乙個字元出現1次或者無限次,即至少有1次
?匹配前乙個字元出現1次或者0次,即要麼有1次,要麼沒有
匹配前乙個字元出現m次
匹配前乙個字元至少出現m次
匹配前乙個字元出現從m到n次
字元功能
^匹配字串開頭
$匹配字串結尾
\b匹配乙個單詞的邊界
\b匹配非單詞邊界
#示例1:$
import re
#正確的位址
ret = re.match("[\w]@163\.com", "[email protected]")
ret.group()
#錯誤的位址
ret = re.match("[\w]@163\.com", "[email protected]")
ret.group()
#通過$來確定末尾
ret = re.match("[\w]@163\.com$", "[email protected]")
ret.group()
#示例2:\b
>>> re.match(r".*\bver\b", "ho ver abc").group()
'ho ver'
>>> re.match(r".*\bver\b", "ho verabc").group()
traceback (most recent call last):
file "", line 1, in attributeerror: 'nonetype' object has no attribute 'group'
>>> re.match(r".*\bver\b", "hover abc").group()
traceback (most recent call last):
file "", line 1, in attributeerror: 'nonetype' object has no attribute 'group'
>>>
#示例3:\b
>>> re.match(r".*\bver\b", "hoverabc").group()
'hover'
>>> re.match(r".*\bver\b", "ho verabc").group()
traceback (most recent call last):
file "", line 1, in attributeerror: 'nonetype' object has no attribute 'group'
>>> re.match(r".*\bver\b", "hover abc").group()
traceback (most recent call last):
file "", line 1, in attributeerror: 'nonetype' object has no attribute 'group'
>>> re.match(r".*\bver\b", "ho ver abc").group()
traceback (most recent call last):
file "", line 1, in attributeerror: 'nonetype' object has no attribute 'group'
正規表示式學習筆記 python
import re re.findall pattern,string,flags 0 pattern 指的是,正規表示式匹配規則 string 指的是,要進行匹配的字串 flags 指的是,可選引數,進行特定條件的匹配,如能讓匹配時不區分大小寫的re.i和能讓元字元.匹配 n的re.s match...
python正規表示式 學習筆記
正規表示式不僅僅適用於python,而且在其他語言中也是很重要的一部分,本文旨在讓python小白對於正規表示式有乙個整體的認識和體驗。什麼是正規表示式?它是嵌入python的微小的 高度專業化的語言 它是處理字串的強大工具。正規表示式能幹什麼?它能對字串進行匹配 切割 替換 獲取。什麼是元字元?特...
python正規表示式學習筆記
正規表示式是乙個特殊的字串行,它能幫助你方便的檢查乙個字串是否與某種模式的匹配 re.mach嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match 就返回none.函式語法 re.match pattern,string,flads 0 函式引數說明 匹配的正規表示式 patt...