我希望能够替换符合正则表达式模式的字符串部分。
我的正则表达式模式如下:
(.+?)@test\.(.+?)
这是一个字符串替换模式:
$1@hoge\.$2
如何在Swift代码中使用它们?
stringByReplacingMatchesInString
进行基于正则表达式的替换。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)
Swift 4.2 更新:
let txt = "myname@test.com"
let regex = "([^@\\s]+)@test\\.(\\w+)"
let repl = "$1@hoge.$2"
print( txt.replacingOccurrences(of: regex, with: repl, options: [.regularExpression]) )
请注意,我已将正则表达式更改为:
([^@\\s]+)
- 匹配除了@
或空格之外的1个或多个字符。@
- 匹配字面上的@
。test\\.(\\w+)
- 匹配字面上的test.
,然后是1个或多个字母数字字符(\w+
)。请注意,在替换字符串中,您不需要转义句点。