1. 程式人生 > >正則表示式並沒你想的那麼難

正則表示式並沒你想的那麼難

首先正則表示式幹嘛用的呢。沒錯就是用來匹配字串的。記得資料庫中的like關鍵字嗎關鍵字中的like ‘%a%’中的’%a%’其實就是一個類正則表示式。%是一個萬用字元。那麼正則表示式中的有哪些類似的這種符號呢?

.  可以匹配所有字元,類似於上例中的%吧

\d ,[0-9]可以匹配一個數字,

根據[0-9]舉一反三同理可得[a-z],[A-Z]表示什麼你們應該猜到了吧。沒錯小寫和大寫。

正則表示式還可以這樣[0-9]你想讓他不僅匹配字串,同時也支援匹配數字怎麼辦呢,往裡面加啊,[0-9a-z],你說這[a-z]只匹配小寫麼,再加個[0-9a-zA-Z],想要什麼往裡面加就是了,加量不加價。

\w可以匹配一個漢字,下劃線,大小寫字母,數字。

\s可以匹配一個空格

有人說我想只匹配 . 怎麼辦呢,這時候就有個轉義符了,斜槓 \。嘿嘿轉一下\.就行啦,舉一反三同理得出,\\表示一個斜槓,其他的小夥伴們自己去舉一反三吧。

常用就上面這麼多吧。我覺得夠了吧

或匹配:

A|B 匹配A或者B,當然我習慣性會(A|B),更清晰一些也不會弄錯。

那麼如果要匹配多個數字咋辦呀總不能\d\d\d\d吧,看著就心碎。

a*表示0個或者多個a

a+表示一個或一個以上的a

a?表示a可有可無,即一個或多個a。

a{n,m}表示a可能出現n到m次。

好了剩下的就是把上面的東西用起來。

1:寫一個手機號碼,假設這個數字第二位可能是3,5,8,後面的基本都見過吧,

1(3|5|8)(\d){10},

2:寫一個郵件地址:

(\w+)@(\w+)\.(com|net)           這裡只寫一般的郵箱

個人覺得可以寫正則表示式的時候分部分寫是最佳的。