正則表示式並沒你想的那麼難
阿新 • • 發佈:2019-02-09
首先正則表示式幹嘛用的呢。沒錯就是用來匹配字串的。記得資料庫中的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) 這裡只寫一般的郵箱
個人覺得可以寫正則表示式的時候分部分寫是最佳的。