gpt4 book ai didi

ios - 解析和收缩俄语全名

转载 作者:行者123 更新时间:2023-11-28 06:52:46 25 4
gpt4 key购买 nike

我有几个文本字段用于输入全名和简称,以及其他数据。我的任务是:

  1. 检查输入的全名是否符合标准的俄语西里尔全名模式:

Иванов Иван Иванович(三个大写的西里尔字符串,用空格分隔)

  1. 如果匹配,则根据下面的模式通过自动收缩全名创建另一个字符串,并将其输入到相应的文本字段中:

Иванов И.И.(第一个字符串,空格,第二个字符串的第一个字符,点,第三个字符串的第一个字符,点)

  1. 如果不匹配,什么也不做。

目前我使用以下代码:

let fullNameArray = fullNameField.text!.characters.split{$0 == " "}.map(String.init)

if fullNameArray.count == 3 {

if fullNameArray[0] == fullNameArray[0].capitalizedString && fullNameArray[1] == fullNameArray[1].capitalizedString && fullNameArray[2] == fullNameArray[2].capitalizedString {

shortNameField.text = "\(fullNameArray[0]) \(fullNameArray[1].characters.first!).\(fullNameArray[2].characters.first!)."
}
}

我该如何改进它?也许正则表达式可以帮助我?如果是这样,您可以发布一些示例代码吗?

最佳答案

我目前的解决方案:

do {
let regex = try NSRegularExpression(pattern: "^\\p{Lu}\\p{Ll}+\\s\\p{Lu}\\p{Ll}+\\s\\p{Lu}\\p{Ll}+$", options: .AnchorsMatchLines)

if regex.firstMatchInString(fullNameField.text!, options: [], range: NSMakeRange(0, fullNameField.text!.characters.count)) != nil {

let fullNameArray = fullNameField.text!.characters.split(" ").map(String.init)

shortNameField.text = "\(fullNameArray[0]) \(fullNameArray[1].characters.first!).\(fullNameArray[2].characters.first!)."
}
else {
shortNameField.text = ""
}
} catch let error as NSError {
print(error.localizedDescription)
}

正确处理我的全名模式。

关于ios - 解析和收缩俄语全名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34461885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com