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 字符集 字符集是由一對方括號 括起來的字元集合。使用字符集,你可以告訴正規表示式引擎僅僅匹配多個字...