使用正则表达式打印每个单词首字母的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

结论

这就是我们如何使用正则表达式打印每个单词的首字母。正则表达式非常强大,因为它允许我们非常轻松地在多个文件中执行复杂的搜索。它们可用于模式匹配、字符串替换、提取子字符串等。

更新于:2023年6月14日

165 次浏览

开启你的职业生涯

完成课程获得认证

开始
广告