Python3 re 的兩種匹配方式對比

2021-10-01 16:14:48 字數 1425 閱讀 2608

使用 re 模組有兩種方式:

使用 re.compile 函式生成乙個 pattern 物件,然後使用 pattern 物件的一系列方法對文字進行匹配查詢;

直接使用 re.match, re.search 和 re.findall 等函式直接對文字匹配查詢;

下面,我們用乙個例子展示這兩種方法。

先看第 1 種用法:

python

import re # 將正規表示式先編譯成 pattern 物件 pattern = re.compile(r'\d+') print pattern.match('123, 123') print pattern.search('234, 234') print pattern.findall('345, 345')

12

3

4

5

6

import

re# 將正規表示式先編譯成 pattern 物件

pattern=re

.compile(r

'\d+'

)print

pattern

.match

('123, 123'

)print

pattern

.search

('234, 234'

)print

pattern

.findall

('345, 345'

)再看第 2 種用法:

python

import re print re.match(r'\d+', '123, 123') print re.search(r'\d+', '234, 234') print re.findall(r'\d+', '345, 345')

12

3

4

import

reprintre.

match(r

'\d+'

,'123, 123'

)printre.

search(r

'\d+'

,'234, 234'

)printre.

findall(r

'\d+'

,'345, 345'

)如果乙個正規表示式需要用到多次(比如上面的 \d+),在多種場合經常需要被用到,出於效率的考慮,我們應該預先編譯該正規表示式,生成乙個 pattern 物件,再使用該物件的一系列方法對需要匹配的檔案進行匹配;而如果直接使用 re.match, re.search 等函式,每次傳入乙個正規表示式,它都會被編譯一次,效率就會大打折扣。

因此,我們推薦使用第 1 種用法。

5868037 qq號

[email protected] qq郵箱

Python3 paramiko的兩種執行命令方式

exec command使用的是ssh exec channel的方式執行,不具備持久化的能力,也就是每次執行都是一次全新的環境,不是說你先切換到root,下一條命令執行就是以root執行了,說簡單點就是把命令當作引數傳送出去,如 ssh user host 命令適合場景 不想使用終端 不執行諸如分...

串的兩種模式匹配演算法

靜時亦覺意思好,才遇事便不同,如何?是徒知靜養而不用克己工夫也。如此,臨事便要傾倒。人須在事上磨,方立得住,方能 靜亦定,動亦定。此時正宜用功。若此時放過,閒時講學何用?人正要在此等時磨鍊。子串的定位操作 串的模式匹配 挨個遍歷,例如在asdfghjkl中尋找dfg,需要將dfg與asdfghjkl...

括號匹配(兩種演算法的完成)

題目描述 pipi給你乙個合法的括號序列,希望跟你按左括號下標遞增順序給出每對括號在序列中的下標。下標從1開始 輸入多組資料 第一行包括乙個只包含 的字串,保證輸入的括號匹配序列合法,長度不超過100000 輸出按左括號下標遞增順序給出每對括號在序列中的下標。樣例輸入 copy 樣例輸出 copy ...