Skip to content

Instantly share code, notes, and snippets.

@GrantJEmerson
Created November 24, 2019 00:37
Show Gist options
  • Save GrantJEmerson/35024978f0acabb970c592164e921bca to your computer and use it in GitHub Desktop.
Save GrantJEmerson/35024978f0acabb970c592164e921bca to your computer and use it in GitHub Desktop.
What's in a Name - SwiftMoji Entry #8
import Foundation
var πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ = """
Family:
Father's Name: Jayson
Mother's Name: Kathrine
Daughter's Name: Alannah
Son's Name: Jacob
"""
let tagger = NSLinguisticTagger(tagSchemes: [.nameType], options: 0)
tagger.string = πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦
let range = NSRange(πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦.startIndex..<πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦.endIndex, in: πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦)
let options: NSLinguisticTagger.Options = [.omitPunctuation, .omitWhitespace, .joinNames]
tagger.enumerateTags(in: range, unit: .word, scheme: .nameType, options: options) { (tag, tokenRange, _) in
if let tag = tag, tag == .personalName {
if let range = Range(tokenRange, in: πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦) {
let name = πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦[range]
print("\(name)") // Jayson Katherine Alannah Jacob
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment