python的re模塊及正則表達式的使用

        不知是因爲自己太低端還是其他的什麼原因,別人都說的正則表達式非常強大,可是我的意識中正則表達式有用,但總是覺得沒有傳說中的那麼厲害。也有可能是自己沒有真正的理解它吧。在python中再次偶遇,那就再來好好學習一番。

        首先是通配符,點號(.)可以匹配除了換行符之外的任意一個字符,'.ython’可以匹配’python‘也可以匹配’jypthon‘。注意點號是匹配一個字符,不能使空更不能是多個。假如在需要匹配的字符串中包含了點號,這時候就需要轉義符來實現,在re中使用(python\\.org)來匹配(python.org).

       匹配字符集,使用[ ]表示,[pj]ython就表示匹配python或者jython,而非其他內容。使用[a-z]表示匹配任意一個小寫字母;[a-zA-Z0-9]則表示匹配任意字母或數字。

       反轉字符集,可以在開頭使用^字符[^abc]表示匹配除了a b c之外的任意字符。當然,如果匹配的內容中包括了^ [ ]等符號時也需要使用反轉字符。

      選擇符和子模式,在字符串的每個字符都不一樣的時候字符集是很好用的,但是如果想匹配字符創python和per呢,這個時候可以使用選擇符“|”,python|per就表示匹配python或者per。有時候不需要對整個字符使用選擇符,p(ython|er)表示的意義和上面一樣,而小括號中的部分就被稱爲子模式。

      可選項和重複子模式,(python)?爲可選項,即該子模式存在或者不存在。(python)*表示模式重複0次或者多次,(python)+表示子模式重複一次或者多次,(python){m,n}表示重複m~n次。

       匹配開頭和結尾,匹配開頭的時候使用^,如^http表示匹配以http開頭的字符串,匹配結尾使用$符號,com$表示匹配以com爲結尾的字符串。

some_text="gao xiang... huier"
import re
if re.search("xiang",some_text): #find the world in the text
	print "found it"

if re.match("xiang",some_text): #macth the world from the s
	print "found it,too"
	
str1=re.split("[. ]+",some_text)
print str1

str2=re.split("[. ]+",some_text,maxsplit=2) #split the text into 3 parts
print str2

str3=re.findall("[a-zA-Z]+",some_text) #find all the substring of the text
print str3

pattern="www.python.org"
str4 = re.escape(pattern) 
print str4
關於正則表達式在python中的使用,

search(pattern,string)根據包含正則表達式在字符串中尋找,返回true 或 false

match(pattern,string)在字符串的開頭出進行匹配

split(pattern,string,flags)根據模式對字符串進行分割,可以通過控制參數控制分割的子結構的數目

findall(pattern,string)列出所有匹配項

escape(string),自動將字符串中的所有特殊鄭則仕字符轉義


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章