I have a String extension:
func replaceLastWordWithUsername(_ username: String) -> String {
let pattern = "@*[A-Za-z0-9]*$"
do {
Log.info("Replacing", self, username)
let regex = try NSRegularExpression(pattern: pattern, options: NSRegularExpression.Options.caseInsensitive)
let range = NSMakeRange(0, self.characters.count)
return regex.stringByReplacingMatches(in: self, options: [], range: range, withTemplate: username )
} catch {
return self
}
}
let oldString = "Hey jess"
let newString = oldString.replaceLastWordWithUsername("@jessica")
newString now equals Hey @jessica @jessica
. The expected result should be Hey @jessica