正規表示式(re)是一種小型的高度專業化的程式語言,(在python中)它內嵌在python中,並通過re模組實現。
其作用:
1.可以為想要匹配的相應字串集指定規則
2.該字串集可能包含英文語句、email位址、命令或者任何你想搞定的東西
3.可以問諸如「這個字串匹配該模式嗎?」
4「在這個字串中是否有部分匹配該模式呢?」
5.你也可以使用re以各種方式來修改或分割字串
正規表示式是一門獨立的語言,並不是python中特有的。正規表示式模式被編譯成一系列的位元組碼,然後由用c編寫的匹配引擎執行。
(並非所有字串處理都能用正規表示式完成)
字元匹配:
普通字元:
大多數字字母和字元一般都會和自身匹配
如正規表示式test會和字串「test」完全匹配
元字元
. ^ $ * + ? {} \ | ()
方括號
常用來指定乙個字符集:[abc];[a-z]
元字元在字符集中不起作用:[akm$]
補集匹配不在區間範圍內的字元:[^5]
這是最原始的 通過普通字元去匹配它自身
>>> importre>>> s = '
abc'
>>>
>>> s = r'
abc'
>>>
>>> re.findall(s,'
aaaaaaaaaads sscabc')
['abc'
]>>> re.findall(s,'
aaaaaaaaaads sscab')
>>> re.findall(s,'
aaabcaaaabcaaads sscab')
['abc', '
abc'
]>>>
有些時候規則有些變化
>>> st = '^top tip tqp twp tep'#
定義乙個字串
>>>
>>> res = r'
top'
#定義乙個正規表示式
>>>
>>> re.findall(res,st) #
在字串裡匹配
['top']
>>> res = r'
tip'
>>>re.findall(res,st)['
tip'
]>>> res = r'
t[io]p'#
如果要匹配tip和top,那麼用方括號
>>>
>>>re.findall(res,st)['
top', '
tip'
]>>> res = r'
t[^io]p'#
如果要匹配除了tip和top之外的區間,那麼使用[^io]
>>>re.findall(res,st)['
tqp', '
twp', '
tep'
]>>>
匹配行首。除非設定multiline標誌,它只是匹配字串的開始。在multiline模式裡,它也可以直接匹配字串中的每個換行。
>>> import$re>>> s = '
hello world,hello boy
' >>> r = r'
hello
'>>>re.findall(r,s)['
hello
', '
hello']
>>> r = r'
^hello
'>>>re.findall(r,s)['
hello']
>>> s = '
world,hello boy
'>>>re.findall(r,s)
>>> r = r'
^world
'>>>re.findall(r,s)['
world']
>>>
匹配行尾,行尾被定義為要麼是字串尾,要麼是乙個換行字元後面的任何位置。
>>> s = 'world,hello boy
'>>> r = r'
boy$
'>>>re.findall(r,s)['
boy'
]>>>
綜合示例:
>>> importre>>>
>>> r = '
t[abc$]
'>>>
>>> re.findall(r,'ta'
)['ta
']>>> re.findall(r,'tb'
)['tb
']>>> re.findall(r,'
tax')[
'ta']
>>> re.findall(r,'
t$') #
這裡$符號作為乙個普通的字元輸出
['t$']
>>> r = '
t[abc^]'#
這裡^符號也是作為乙個普通的字元輸出。如果放在開頭如't[^abc]'那就是取匹配區間外的字串了
>>> re.findall(r,'t^'
) ['t^
']>>>
>>> r = r'
x[0123456789]x'#
可以寫成x[0-9]x
>>>
>>> re.findall(r,'
x1x')[
'x1x']
>>> re.findall(r,'
x1x,x2x')
['x1x', '
x2x'
]>>> re.findall(r,'
x1x,x2x,x9x')
['x1x', '
x2x', '
x9x'
]>>> r = r'
x[0-9]x
'>>> re.findall(r,'
x1x,x2x,x9x')
['x1x', '
x2x', '
x9x'
]>>> r = r'
x[a-za-z0-9]x'#
同理,匹配乙個比較大的範圍,用-號
>>> re.findall(r,'
x1x,xrx,xgx')
['x1x', '
xrx', '
xgx'
]>>>
正規表示式 1 初識正規表示式
簡單地說,正規表示式就是一套處理字串的規則和方法,以行為單位對字串進行處理,通過特殊的符號的輔助,我們可以快速的過濾,替換某些特定的字串。運維工作中,會有大量訪問日誌,錯誤日誌,大資料。如何能夠快速的過濾出我們需要的內容,這就需要正規表示式。awk,sed,grep egrep 三劍客要想能工作的更...
正規表示式初識
用來指定乙個字元集合 字元直接是 或 的關係,不是乙個特定的字串,跟 abc 不同 abc a z 在字符集中,元字元 不起作用 abc abc 元字元 在字串尾不起作用 abc 就是普通字元。元字元在字符集首表示匹配補集,abc 就是匹配除了a,b,c以外的字元。匹配行首,位於字串首。制定規則re...
正規表示式初識
正規表示式 為轉義如 表示.郵箱匹配 grep e 0 9a za z 0 9a za z a za z a.txt 查詢郵箱 a z 所有小寫字母 a z 所有大寫字母 0 9 所有數字 0 9 所有非數字 表達取反 0 9 a z 0個或多個小寫字母 a z 至少出現一次小寫字母 a z 出現0...