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