Objective C 正規表示式的使用

2021-07-03 07:54:38 字數 3634 閱讀 7942

前言:

程式設計中,對於字串的處理是無處不在的.時常需要在一堆亂碼中找到有用的資訊.比如在如下的字串中獲取有效的urlemail

諸如此類問題,我們都可以通過正規表示式來解決,正則在任意程式語言都有對應實現.

ios4 之後,cocoa 也提供了用於正則的nsregularexpressionnstextcheckingresult這兩個類.前者用於建立正則,匹配,替換;後者是乙個快速匹配物件,可用於檢查拼寫,url等,也可作為正則匹配的結果,包含匹配到子串所在 range 和匹配規則.

];正則匹配模式

option

nsregularexpression提供了對字串匹配,替換的函式,

nsregularexpression

(nsmatching

)

//列舉在 string 的指定 range 中按 pattern 匹配到的所有子字串,在 block 中做處理-(

void

)enumeratematchesinstring

:(nsstring

*)string

options

:(nsmatchingoptions

)options range

:(nsrange

)range usingblock

:(void

(^)(

nstextcheckingresult

*result

,nsmatchingflags

flags

,bool

*stop

))block

;//獲取在 string 的指定 range 中按 pattern 匹配到的所有子字串-(

nsarray

*)matchesinstring

:(nsstring

*)string

options

:(nsmatchingoptions

)options range

:(nsrange

)range

;//獲取匹配到子串的個數-(

nsuinteger

)numberofmatchesinstring

:(nsstring

*)string

options

:(nsmatchingoptions

)options range

:(nsrange

)range

;//獲取第一次匹配到的結果,-(

nstextcheckingresult

*)firstmatchinstring

:(nsstring

*)string

options

:(nsmatchingoptions

)options range

:(nsrange

)range

;//獲取第一次匹配到的 range-(

nsrange

)rangeoffirstmatchinstring

:(nsstring

*)string

options

:(nsmatchingoptions

)options range

:(nsrange

)range

;

nsregularexpression

(nsreplacement

)

//修改在 string 的指定 range 中按 pattern 匹配到的子字串為 templ, 將修改後的字串深 copy 後返回-(

nsstring

*)stringbyreplacingmatchesinstring

:(nsstring

*)string

options

:(nsmatchingoptions

)options range

:(nsrange

)range withtemplate

:(nsstring

*)templ

;//修改在 可變 string 的指定 range 中按 pattern 匹配到的子字串為 templ, 並返回所修改的子串的個數-(

nsuinteger

)replacematchesinstring

:(nsmutablestring

*)string

options

:(nsmatchingoptions

)options range

:(nsrange

)range withtemplate

:(nsstring

*)templ

;

匹配示例
nsmutablestring

]);輸出:-05

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...