初學(xué)Python時(shí)相關(guān)注意事宜
初學(xué)Python時(shí)應(yīng)該對(duì)Python概念有所了解,其實(shí)Python就是:是一種面向?qū)ο蟆⒅弊g式計(jì)算機(jī)程序設(shè)計(jì)語言,也是一種功能強(qiáng)大而完善的通用型語言,已經(jīng)具有十多年的發(fā)展歷史。
但是對(duì)于初學(xué)者來說,要用好這個(gè)功能還是有點(diǎn)難度,我花了好長時(shí)間才摸出了點(diǎn)門道。由于我記性不好,很容易就忘事,所以還是寫下來比較好一些,同時(shí)也可以加深印象,整理思路。
1 Python正則式的基本用法
Python的正則表達(dá)式的模塊是 ‘re’,它的基本語法規(guī)則就是指定一個(gè)字符序列,比如你要在一個(gè)字符串s=’
123abc456’ 中查找字符串 ’abc’,只要這樣寫:
- else:
- # example for windows
- gnuplot_exe = r"c:\gnuplot\bin\pgnuplot.exe"
- 然后可以到dos下去運(yùn)行easy.py和grid.py。
- 如 cd C:\libsvm-2.89\tools
- python grid.py train.txt
結(jié)果就是:
這里用到的函數(shù) ”findall(rule , target [,flag] )” 是個(gè)比較直觀的函數(shù),就是在目標(biāo)字符串中查找符合規(guī)則的字符串。第一個(gè)參數(shù)是規(guī)則,第二個(gè)參數(shù)是目標(biāo)字符串。后面還可以跟一個(gè)規(guī)則選項(xiàng)(選項(xiàng)功能將在compile函數(shù)的說明中詳細(xì)說明)。返回結(jié)果結(jié)果是一個(gè)列表,中間存
放的是符合規(guī)則的字符串。如果沒有符合規(guī)則的字符串被找到,就返回一個(gè)空列表。為什么要用r’ ..‘字符串(raw字符串)? 由于正則式的規(guī)則也是由一個(gè)字符串定義的,而在正則式中大量使用轉(zhuǎn)義字符’\’,如果不用raw字符串。
則在需要寫一個(gè)’\’的地方,你必須得寫成’\\’,那么在要從目標(biāo)字符串中匹配一個(gè)’\’的時(shí)候,你就得寫上4個(gè)’\’成為’\\\\’!這當(dāng)然很麻煩,也不直觀,所以一般都使用r’’來定義規(guī)則字符串。當(dāng)然,某些情況下,可能不用raw字符串比較好。
下面來一個(gè)一個(gè)的說明這些規(guī)則的含義,不過說明的順序并不是按照上面的順序來的,而是我認(rèn)為由淺入深,由基本到復(fù)雜的順序來編排的。同時(shí)為了直觀,在說明的過程中盡量多舉些例子以方便理解。
初學(xué)Python首先說明一下字符集合設(shè)定的方法。由一對(duì)方括號(hào)括起來的字符,表明一個(gè)字符集合,能夠匹配包含在其中的任意一個(gè)字符。比如 [abc123],表明字符’a’ ‘b’ ‘c’ ‘1’ ‘2’ ‘3’都符合它的要求。可以被匹配。
在’[‘ ‘]’中還可以通過 ’-‘ 減號(hào)來指定一個(gè)字符集合的范圍,比如可以用[a-zA-Z]來指定所以英文字母的大小寫,因?yàn)橛⑽淖帜甘前凑諒男〉酱蟮捻樞騺砼诺摹D悴豢梢园汛笮〉捻樞蝾嵉沽耍热鐚懗蒣z-a]就不對(duì)了。
如果在’[‘ ‘]’里面的開頭寫一個(gè) ‘^’ 號(hào),則表示取非,即在括號(hào)里的字符都不匹配。如[^a-zA-Z]表明不匹配所有英文字母。但是如果 ‘^’不在開頭,則它就不再是表示取非,而表示其本身,如[a-z^A-Z]表明匹配所有的英文字母和字符’^’。
它匹配一個(gè)單詞的邊界,比如空格等,不過它是一個(gè)‘0’長度字符,它匹配完的字符串不會(huì)包括那個(gè)分界的字符。而如果用’\s’來匹配的話,則匹配出的字符串中會(huì)包含那個(gè)分界符。
初學(xué)Python正則式需要匹配不定長的字符串,那就一定需要表示重復(fù)的指示符。Python的正則式表示重復(fù)的功能很豐富靈活。重復(fù)規(guī)則的一般的形式是在一條字符規(guī)則后面緊跟一個(gè)表示重復(fù)次數(shù)的規(guī)則,已表明需要重復(fù)前面的規(guī)則一定的次數(shù)。
【編輯推薦】