Replace string with regex in swift

Solutions Collect From Internet About “Replace string with regex in swift”

In Swift, you can use stringByReplacingMatchesInString for a regex-based replace.

Here is a snippet showing how to use it:

let txt = "myname@test.com"
let regex = NSRegularExpression(pattern: "([^@\\s]+)@test\\.(\\w+)", options:nil, error: nil)
let newString = regex!.stringByReplacingMatchesInString(txt, options: nil, range: NSMakeRange(0, count(txt)), withTemplate: "$1@hoge.$2")
println(newString)

Note that I changed the regex to

  • ([^@\\s]+) – matches 1 or more characters other than @ or whitespace
  • @ – matches @ literally
  • test\\.(\\w+) – matches test. literally and then 1 or more alphanumeric character (\w+).

Note that in the replacement string, you do not need to escape the period.