Python 正規表示式入門(初中篇)

2021-09-11 22:42:07 字數 1632 閱讀 9101

python 正規表示式入門(初級篇)

本文主要為沒有使用正規表示式經驗的新手入門所寫。

原文:https:

5885073.html

引子首先說 正規表示式是什麼?

正規表示式,又稱正規表示式、正規表示法、正規表示式、規則表示式、常規表示法(英語:regular expression,在**中常簡寫為regex、regexp或re),電腦科學的乙個概念。正規表示式使用單個字串來描述、匹配一系列匹配某個句法規則的字串。在很多文字編輯器裡,正規表示式通常被用來檢索、替換那些匹配某個模式的文字。

許多程式語言都支援利用正規表示式進行字串操作。例如,在perl中就內建了乙個功能強大的正規表示式引擎。正規表示式這個概念最初是由unix中的工具軟體(例如sed和grep)普及開的。正規表示式通常縮寫成「regex」,單數有regexp、regex,複數有regexps、regexes、regexen。

引用自維基百科https:

%e6%ad%a3%e5%88%

99%e8%a1%a8%e8%be%be%e5%bc%

8f定義是定義,太正經了就沒法用了。我們來舉個栗子:假如你在寫乙個爬蟲,你得到了

乙個網頁的html原始碼。其中有一段

hello world

<

/body>

<

/html>

你想要把這個hello world提取出來,但你這時如果只會python 的字串處理,那麼第一反應可能是

s =hello world

<

/body>

<

/html>

start_index = s.find('"

#這段是你要匹配的文字

p1 = r"(?<=)"

#這是我們寫的正規表示式規則,你現在可以不理解啥意思

pattern1 = re.

compile

(p1)

#我們在編譯這段正規表示式

matcher1 = re.search(pattern1,key)

#在源文字中搜尋符合正規表示式的部分

print matcher1.group(0)

#列印出來

這個正規表示式

p1 = r"(?<=

結尾就能看出效果

看到\1了嗎?原本那個位置應該是[1-

6],但是我們寫的是\1,我們之前說過,轉義符\幹的活就是把特殊的字元轉成一般的字元,把一般的字元轉成特殊字元。普普通通的數字1被轉移成什麼了呢?在這裡1表示第乙個子表示式,也就是說,它是動態的,是隨著前面第乙個子表示式的匹配到的東西而變化的。比方說前面的子表示式內是[1-

6],在實際字串中找到了1,那麼後面的\1就是1,如果前面的子表示式在實際字串中找到了2,那麼後面的\1就是2。

類似的,\2

,\3,..

..就代表第二個第三個子表示式。

所以回溯引用是正規表示式內的乙個「動態」的正規表示式,讓你根據實際的情況變化進行匹配。

中級篇就到這裡,其實正規表示式還有很多細節還沒有寫出來,也有很多元字元我沒有交代,但掌握了綱要,懂得原理之後剩下的就類似於查表構造這種活了。

建議看到這的朋友看看《正規表示式必知必會》,初級篇和這篇中有幾個例子也是取材於此。

入門 python正規表示式

我是菜鳥,只適合新手參考 啊哈,第一次寫部落格就要寫我剛接觸的東西,所以接下來的內容多為摘錄 抄襲 這篇博文主要是鞏固我的學習,時間緊迫,讓我們開始吧!小夥伴們,首先看什麼是正規表示式呢?少說廢話了 正規表示式是乙個特殊的字串行,它用來幫助我們高效地檢查乙個字串是否與某種模式匹配,re 模組使pyt...

正規表示式 正則入門

先從乙個例子開始正規表示式。書寫乙個匹配手機號的正規表示式,為了方便討論,假定手機號是1開頭,第二位只能是3 5 8中的其中乙個,總共11位的數字,形如13 匹配手機號的正規表示式為 1 358 d 下面介紹此正規表示式中的各個符號的含義。表示字串的開頭,後面緊接著1,表示匹配的字串要以 1 開頭。...

正規表示式入門

對於文字字元,有11個字元被保留作特殊用途。他們是 這些特殊字元也被稱作元字元 不可顯示字元 可以使用特殊字串行來代表某些不可顯示字元 代表tab 0x09 代表回車符 0x0d 代表換行符 0x0a 字符集 字符集是由一對方括號 括起來的字元集合。使用字符集,你可以告訴正規表示式引擎僅僅匹配多個字...