前言:
程式設計中,對於字串的處理是無處不在的.時常需要在一堆亂碼中找到有用的資訊.比如在如下的字串中獲取有效的url或email
諸如此類問題,我們都可以通過正規表示式來解決,正則在任意程式語言都有對應實現.
ios4 之後,cocoa 也提供了用於正則的nsregularexpression
和nstextcheckingresult
這兩個類.前者用於建立正則,匹配,替換;後者是乙個快速匹配物件,可用於檢查拼寫,url等,也可作為正則匹配的結果,包含匹配到子串所在 range 和匹配規則.
];正則匹配模式
optionnsregularexpression
提供了對字串匹配,替換的函式,
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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...