正則表達式接觸過好屢次,之前用C寫代碼的時候對文本的處理很少,基本沒怎麼用過。工做了之後對於正則表達式才逐步的用了起來。可是到目前爲止,公司裏面很多同事對於正則表達式具體怎麼用的仍是不清楚,也挺讓人無奈的。正則表達式
我好好研究正則表達式是在出差的時候學會的,當時有個數據配置的規則,一線和家裏的數據匹配方式正好是反過來的,使用的字符也不同。當時實在是沒辦法了,把資料搬出來,結合百度,而後好好學習了下,算是知道怎麼用了。數組
這裏推薦notepad++這個編輯器,裏面的正則表達式查找功能用來練習正則表達式實在是太棒了。編輯器
NOTEPAD++的搜索功能中帶有正則表達式匹配,能夠查找替換,篩選。仍是挺不錯的。函數
1 匹配單行記錄學習
^.+$ 解析:^用來匹配行首, "."能夠匹配除了換行的任意字符,"+"表示匹配前面字符1個或無限個,"$"表示行尾,輕鬆搞定。spa
2 Python中的正則表達式使用設計
Python中自帶的re模塊仍是挺好用的,結合使用經驗,目前看findall函數是相對通用的函數,可以將指定字符串中全部的記錄都摘選出來放到一個數組中。code
1 >>> regex_list1 = re.compile ( r'\baaa\b' ) 2 >>> 3 >>> tmp_string = 'aaa 1234aaa2342 bacaaa' 4 >>> 5 >>> print regex_list1.findall ( tmp_string ) 6 ['aaa'] 7 >>> regex_list1 = re.compile ( r'[1-9]{3}aaa[1-9]{2}' ) 8 >>> print regex_list1.findall ( tmp_string ) 9 ['234aaa23']
先定義一個正則表達式的字符串,咋設計根據本身的需求實現。對象
而後調用re.compile()函數對這個字符串進行編譯,函數的返回結果就是一個正則表達式的對象。blog
而後就能夠經過這個正則表達式對象的功能函數findall對字符串進行匹配和過濾。
匹配效果如上圖所示。用起來仍是很簡單的,只要能設計正確的正則表達式便可。