gpt4 book ai didi

regex - 快速用正则表达式替换字符串

转载 作者:搜寻专家 更新时间:2023-10-30 22:34:40 24 4
gpt4 key购买 nike

我想替换与正则表达式模式匹配的字符串的一部分。

我有以下正则表达式模式:

(.+?)@test\.(.+?)

这是一个字符串替换模式:

$1@hoge\.$2

如何在 Swift 代码中使用它们?

最佳答案

在 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+)。

请注意,在替换字符串中,您不需要对句点进行转义。

关于regex - 快速用正则表达式替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32606217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com