使用正則表示式列印每個單詞首字母的Swift程式
在Swift中,正則表示式被稱為正則表示式。它用於建立一個模式,有助於匹配或提取給定字串的特定部分。我們可以藉助正則表示式字面量或字串來建立一個正則表示式例項。在本文中,我們將使用正則表示式來列印每個單詞的首字母。
示例
Input: String = "Ram got first place" Output: "Rgfp "
此處,輸出字串包含給定字串中每個單詞的首字母。
在以下示例中,我們將使用以下方法:
matches(in:options:range) 方法 - 此方法用於獲取一個數組,其中包含正則表示式的所有匹配項。
語法
func matches(in:str, options:option, range:Range)
此函式採用三個引數:
str - 輸入字串。
option - 表示要使用的匹配選項。
Range - 字串執行搜尋的有效範圍。
enumerateMatches(in:options:range:using:) 方法 - 此方法允許一個塊來處理每個正則表示式匹配。
語法
func enumerateMatches(in:str, options:option, range:Range, using:code)
此函式採用四個引數:
str - 輸入字串。
option - 匹配選項。
Range - 要測試的字串的有效範圍。
code - 它列舉正則表示式的匹配項。
演算法
步驟1 - 建立一個函式,該函式將輸入字串作為引數。
步驟2 - 現在此函式設定正則表示式。
步驟3 - 然後它使用 matches() 函式對給定字串執行模式匹配。此函式採用兩個引數:要匹配的字串以及在其中執行匹配的字串範圍。
步驟4 - 透過使用 map() 函式迭代“matchRes”,提取每個字元的首字母。對於每個匹配項,從給定字串中提取相應的子字串,並將每個子字串的首字母儲存在陣列中。
步驟5 - 使用 joined() 函式連線陣列的所有元素後,列印最終結果。
步驟6 - 建立一個字串。
步驟7 - 呼叫函式並將字串作為引數傳遞給它。
示例1
在下面的 Swift 程式中,我們將使用正則表示式列印每個單詞的首字母。因此,我們定義一個函式,該函式接受一個輸入字串並提取字串中每個單詞的首字母。此函式有一個變數,該變數儲存正則表示式“\b\w”,其中“\b”表示單詞邊界,它確保匹配發生在每個單詞的開頭,“\w”表示一個字元 (A-Z, a-z, 0-9)。然後它使用 NSRegularExpression 初始化匹配模式。然後它使用 matches() 函式匹配字串,並使用 map() 函式提取每個單詞的首字母,並在連線字串中所有單詞的首字母后列印最終結果。
import Foundation import Glibc func displayFirstLetter(mStr: String) { let mpattern = "\\b\\w" let regex = try! NSRegularExpression(pattern: mpattern) let matchRes = regex.matches(in: mStr, range: NSRange(mStr.startIndex..., in: mStr)) let firstLetters = matchRes.map { match in String(mStr[Range(match.range, in: mStr)!]) } print("First letters are:", firstLetters.joined()) } let OriginalString = "Ronit play golf Very Well" print("Original String:", OriginalString) displayFirstLetter(mStr: OriginalString)
輸出
Original String: Ronit play golf Very Well First letters are: RpgVW
示例2
在下面的 Swift 程式中,我們將使用正則表示式列印每個單詞的首字母。因此,我們定義一個函式,該函式接受一個輸入字串並提取字串中每個單詞的首字母。此函式有一個變數,該變數儲存正則表示式“\b\w”,其中“\b”表示單詞邊界,它確保匹配發生在每個單詞的開頭,“\w”表示一個字元 (A-Z, a-z, 0-9)。然後它建立一個 NSRegularExpression 例項。然後我們使用 enumerateMatches(in:options:range:using:) 方法迭代正則表示式在輸入字串中找到的匹配項。最後顯示給定字串中所有單詞的首字母。
import Foundation let inputStr = "Mona visits charminar" let regexPattern = "\\b\\w" if let regex = try? NSRegularExpression(pattern: regexPattern, options: []) { regex.enumerateMatches(in: inputStr, options: [], range: NSRange(inputStr.startIndex..., in: inputStr)) { (match, _, _) in if let range = match?.range(at: 0), let lRange = Range(range, in: inputStr) { let fLetter = inputStr[lRange] print("First Letters are:", fLetter) } } }
輸出
First Letters are: M First Letters are: v First Letters are: c
結論
這就是我們如何使用正則表示式列印每個單詞的首字母。正則表示式非常強大,因為它允許我們非常輕鬆地在多個檔案中執行復雜的搜尋。它們可用於模式匹配、字串替換、提取子字串等。