上大學的時候,總以爲正則表達式難極了,看一點就頭昏眼花高血壓。因而始終都沒有好好去學過正則表達式。程序員
後來成了程序員,以爲正則表達式是一裝逼利器。但是讓我這個菜鳥程序員看起來並不那麼菜鳥。正則表達式
因而去看書,去找視頻。書看的是某本xxx4.0從入門到精通。後來的看的是楊中科老師的視頻。總共講了十幾個視頻吧。楊老師講課風趣幽默卻是真的。期間還跟着視頻作了正則表達式從某美女圖片網站一鍵下載頁面所有圖片的小程序。一點點慢慢從理解到寫demo,再到後來項目中url重寫第一次在工做中用到正則。慢慢的開始熟悉了。先後加起來不過半個多月的時間。說半個多月是由於我並無苦心專研。由於我基本天天只看兩個學習的視頻而後寫點本身想到能夠應用的小例子就開始看電視劇去了數據庫
首先正則表達式幹嗎用的呢。沒錯就是用來匹配字符串的。記得數據庫中的like關鍵字嗎關鍵字中的like ‘%a%’中的’%a%’其實就是一個類正則表達式。%是一個通配符。那麼正則表達式中的有哪些相似的這種符號呢?小程序
. 能夠匹配全部字符,相似於上例中的%吧學習
\d ,[0-9]能夠匹配一個數字,網站
根據[0-9]觸類旁通同理可得[a-z],[A-Z]表示什麼大家應該猜到了吧。沒錯小寫和大寫。url
正則表達式還能夠這樣[0-9]你想讓他不只匹配字符串,同時也支持匹配數字怎麼辦呢,往裏面加啊,[0-9a-z],你說這[a-z]只匹配小寫麼,再加個[0-9a-zA-Z],想要什麼往裏面加就是了,加量不加價。spa
\w能夠匹配一個漢字,下劃線,大小寫字母,數字。視頻
\s能夠匹配一個空格圖片
有人說我想只匹配 . 怎麼辦呢,這時候就有個轉義符了,斜槓 \。嘿嘿轉一下\.就行啦,觸類旁通同理得出,\\表示一個斜槓,其餘的小夥伴們本身去觸類旁通吧。
經常使用就上面這麼多吧。我以爲夠了吧
或匹配:
A|B 匹配A或者B,固然我習慣性會(A|B),更清晰一些也不會弄錯。
那麼若是要匹配多個數字咋辦呀總不能\d\d\d\d吧,看着就心碎。
a*表示0個或者多個a
a+表示一個或一個以上的a
a?表示a無關緊要,即0個或1個a。
a{n,m}表示a可能出現n到m次。
好了剩下的就是把上面的東西用起來。
1:寫一個手機號碼,假設這個數字第二位多是3,5,8,後面的基本都見過吧,
1(3|5|8)(\d){10},
2:寫一個郵件地址:
(\w+)@(\w+)\.(com|net) 這裏只寫通常的郵箱
我的以爲能夠寫正則表達式的時候分部分寫是最佳的。
這邊講些基礎的,下次有時間講些C#中的用法和正則分組的概念,一方面給供新手們學習,一方面本身也可查閱和複習。我以爲寫博客除了能夠鍛鍊本身的思惟能力,總結能力,文字表達能力,這方面也是對本身大有裨益的。