如何在swift中转换标签?

如何在swift中转换标签?,swift,textview,hashtag,Swift,Textview,Hashtag,我想提取标签 func getHashtags() -> [String] { let words = components(separatedBy: " ") var hashTags = [String]() for word in words{ if word.hasPrefix("#"){ let hashtag = word.dropFirst() ha

我想提取标签

func getHashtags() -> [String] {
    let words = components(separatedBy: " ")
    var hashTags = [String]()
    for word in words{
        if word.hasPrefix("#"){
            let hashtag = word.dropFirst()
            hashTags.append(String(hashtag))
        }
    }
    return hashTags
}
这种方法不是一个好办法。“我想吃米饭吃。”标签是从以下句子中提取出来的

但是如果句子是这样的话


hashtag无法识别换行符,因此不会提取整个hashtag。如何解决这个错误?告诉我提取标签的函数。

您可以将代码重新格式化为类似的内容<代码>字符串这是您的原始文本

func getHashtags() -> [String] {
    let words = components(separatedBy: " ")
    var hashTags = [String]()
    for word in words{
        if word.hasPrefix("#"){
            let hashtag = word.dropFirst()
            hashTags.append(String(hashtag))
        }
    }
    return hashTags
}
func getHashtags() -> [String] {
     var words = string.components(separatedBy: "#") // Separate words by #
     var hashTags = [String]()
     // Check if the first word of sentence is a hashtag. If it is not then remove the first word
     // ex "firstWord #firstHashtag". Here "firstWord " should be removed
     var shouldRemoveFirstWord = !string.hasPrefix("#") 
     if shouldRemoveFirstWord {
         words.removeFirst()
     }
     
     for word in words{
         let trimmedWord = word.trim()
         // If the word has space then get only the first word
         let firstWord = word.components(separatedBy: " ")
         let hashtag = firstWord[0]
         hashTags.append(String(hashtag))
      }
      return hashTags
 }
对于修剪功能,您可以这样添加它

    extension String {   
           func trim() -> String {
                return self.trimmingCharacters(in: .whitespacesAndNewlines)
           }
    }

请将示例数据作为文本而不是图像包含。我尝试从多行字符串中提取哈希标记,代码与您的代码类似,效果良好,因此我猜问题与您的数据有关,而不是与您的代码有关。示例数据如下。“hihihii hashtag#hashtag#hi#asdf\n#dfd#dfsfs”您应该编辑问题并添加它,而不是将其作为注释发布,并解释运行代码时得到的结果,因为在我看来,它工作正常。我可以通过稍微修改代码来解决它。非常感谢。