你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> 0524.深入淺出理解iOS常用的正則表達式―基礎篇[Foundation]

0524.深入淺出理解iOS常用的正則表達式―基礎篇[Foundation]

編輯:關於IOS

 

Regular ['regj?l?] adj. 定期的;有規律的

Expression [?k'spre?(?)n; ek-] n. 表現,表示

Regular expression 正則表達式

 

什麼是正則表達式?

 

 

用一個描述字符串去驗證另一個字符串是否符合描述字符串的特征。(不嚴謹,可以這麼理解)

 

思考:比如表達式“12+”,描述的意思是一個1和任意個2組成的字符串,那麼'12'、’122‘、'122'….都符合描述特征

 

正則表達式用來干嘛?

 

常用到的幾種方式:

 

1、驗證字符串是否符合指定要求:比如驗證郵箱格式、密碼個數等等

2、查找符合指定要求的字符串,這個比從父串中查找子串方便太多

3、替換,更強大

 

思考:正則的用途無非2種,驗證、字符串的處理(查找、替換、刪除之類)

 

 

正則表達式的基礎知識

 

 

一、單種匹配,匹配一次

 

 

1、普通字符:字母、數字、漢字、下劃線、沒有特殊定義的標點

 

舉例::表達式c,匹配字符串adasc,匹配結果:c,匹配位置:始於4,結束於5

 

2、轉義字符:有特殊意義的字符,采用前面‘+字母’的方式替換原字符

 

表達式

匹配特征

 

回車

 

換行符

 

制表符

/

代表本身

^

匹配^本身

$

匹配$本身

.

匹配.本身

 

舉例:表達式$d,在匹配字符串sas$d132,匹配結果:$d,匹配位置:始於3,結束於5

 

 

二、多種匹配,匹配一次

 

1、固定的多種匹配(匹配一次)

 

表達式

匹配特征

d

0~9的任意一個

w

A-Z,a-z,0-9,_ 中的任意一個

s

空格、制表符、換頁符的任意一個

.

匹配除了 外的任意一個

 

舉例:表達式a.d,匹配123ab11d,匹配結果:ab1,匹配位置:始於3,結束於6

 

2、自定義的多種匹配(匹配一次)

 

使用方括號[],意思是匹配方括號裡面的任意一個字符,[^]那就是匹配方括號裡面字符以外的任意一個字符

 

表達式

匹配特征

[abc1]

a、b、c、1中的任意一個字符

[^abc]

除了a、b、c以外的任意一個字符

[a-f]

a到f之間任意一個字符

[^a-f]

除了a到f之間以外的任意一個字符

 

舉例:表達式[^123][456],匹配12345678,匹配的結果45,匹配位置:始於3,結束於5

 

思考:理解[]代表其中任意一個字符,^代表字符以外的任意字符即可

 

三、多種匹配,匹配多次

 

如果想要實現多次匹配,那麼就要告訴描述的表達式你想要匹配幾次,這個東西就是次數修飾,有一點需要注意的是次數修飾放到被修飾的表達式後面

 

表達式

匹配特征

{n}

匹配n次

{m,n}

匹配m~n之間的次數

{m,}

匹配 >=m 次

匹配 0~1中間的次數

*

匹配 >=0次

+

匹配 >=1 次

 

舉例:表達式d?[ab]*,匹配abc123,匹配結果:ab匹配始於0,結束於2

 

思考:次數修飾符放到表達式後面用以表示重復的次數即可

 

四、特殊匹配

 

表達式

意義

^

與字符串開始的地方匹配

$

與字符串結束的地方匹配



匹配一個單詞的邊界,也就是單詞和空格之間的位置(不匹配任何字符,一邊是w,一邊是非w)

|

前後2個表達式是或的關系

()

1、在被修飾匹配次數的時候,括號代表一個整體

2、去匹配結果的時候,括號內的匹配內容可以被單獨取到

 

舉例1:表達式start,匹配go,start,end,匹配結果是start

 

舉例2:表達式(go)+,匹配let's gogo,匹配結果是go go

 

舉例3:表達式$(d+.d*),匹配$12.33,匹配結果$12.33。單獨獲取括號裡面的內容:12.33

 

 

 

 

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved