正則表達式(廣為所知的“regex”)是一個字符串或一個字符序列來說明一種模式,把它作為一個搜索字符串-非常強大!
在一個文本編輯器或文字處理器中普通的舊式搜索只允許你進行簡單的匹配。正則表達式可以實現這樣簡單的搜索,它還能讓你更進一步地按模式搜索,例如,在兩個數字后跟一個字母,或者,三個字母后跟一個連字符。
這種模式匹配能讓你做更有用的事,如驗證字段(電話號碼,郵箱地址),檢查用戶輸入,執行更高級的文本操作等等。
如果你渴望了解更多關于正則表達式在iOS中的用法,看一些本教程之外的內容--不需要有相關的經驗。
在這篇NSRegularExpression教程中,你將實現一個在文本中按模式搜索的功能,用你希望的值替代那些匹配的值,驗證你的輸入信息,在文字塊中找到并高亮顯示復雜字符串。
此外,我還將給你提供一個NSRegularExpression Cheat Sheet php?/PDF/' target='_blank'>PDF,你可以打印出來,在你開發過程中作為參考,Swift playground 包含了很多例子,你能用它試驗出許多不同形式的正則表達式!實際上,所有正則表達式的例子都會出現在本教程中,用很生動的例子展現在playground中,一定要查看它們哦。
閑話少說,是時候來處理正則表達式了。
/The (Basics|Introduction)/
Note:如果你已經有正則表達式基礎了,可以跳過頭部,直接看Implementing Regex in iOS.
如果你是剛接觸正則表達式,并且想知道所說的這些是什么意思,這是一個簡短的定義:正則表達式提供了一種在指定文本文檔中按指定模式進行搜索,并能基于匹配模式進行修改文本的一種方式。有許多關于正則表達式的有意思的書和教程--在本教程的結尾,你會看到一個簡短的列表。
Regular Expressions Playground

在本教程中,你將會創建許多正則表達式,假使你想要可視化的使用它們,那么用Swift Playground 是一個絕佳的方式 !
這個starter project 包含了這個教程用到的playground。下載項目,在Xcode中運行并打開iRegex.playground.你也可以單獨下載這個playground(download the playground) 。
Playground 頂部包含許多函數來高亮顯示在一小段文本中應用正則表達式的搜索結果,展示了一系列的匹配項和分組,還有替換文本。目前不要擔心這些方法的實現,之后你會再看到它們的,在Basic Examples和Cheat Sheet部分接著看這個例子。
在playground的側邊欄,你會看到每個例子的匹配結果。比如“highlight”這個例子,你可以把鼠標指針懸浮在結果上并點擊“眼”或者空的圓圈圖標來顯示在文本中高亮的匹配內容。
你之后將學會如何創建NSRegularExpressions,現在你可以用這個playground來感受下不同的正則表達式是怎樣工作的,也可以試驗一下你自己的模式。在任一點上你都可以用Xcode中的EEditor > Reset Playground菜單按鈕來重置你的改動。
Examples
讓我們以一個小例子來展示正則表達式的樣子。
這是一個來匹配單詞“jump”的正則表達式的例子:
1 jump這是一個如此簡單的正則表達式。你可以使用iOS中可用的API來查詢一個文本中的字符串來匹配這個正則表達式—一旦你找到了匹配項,你能發現它在哪兒,你也可以替換它。
這是一個略微復雜點的例子—它會匹配單詞“jump”或“jumping”:
新聞熱點
疑難解答