0524.深入淺出理解iOS常用的Regex—基礎篇[Foundation]

來源:互聯網
上載者:User

 

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

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

Regular expression Regex

 

什麼是Regex?

 

 

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

 

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

 

Regex用來幹嘛?

 

常用到的幾種方式:

 

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

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

3、替換,更強大

 

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

 

 

Regex的基礎知識

 

 

一、單種匹配,匹配一次

 

 

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

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.