regex - 如何替换 Swift 中的第一次出现?

标签 regex swift

如何将 replacingOccurrences 与正则表达式一起使用,并且只替换第一次出现的事件?

例子

var str = "= 1 = 2 = 3"
str = str.replacingOccurrences(of: "(\\d+)", with: "\\\\$1", options: .regularExpression)
// prints: = \\1 = \\2 = \\3
// should print: = \\1 = 2 = 3

最佳答案

String.range() 将在第一个匹配处停止:

var str = "= 1 = 2 = 3"
if let range = str.range(of: "\\d+", options: .regularExpression) {
    let substr = str[range]
    str = str.replacingCharacters(in: range, with: "\\\\" + substr)
}

print(str)

关于regex - 如何替换 Swift 中的第一次出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44491278/

相关文章:

javascript - 如何为字母数字、空格和撇号创建正则表达式,然后仅以字母数字结尾?

符合单一协议(protocol)的 Swift Enum 关联值

ios - presentViewController会不会导致内存耗尽?

javascript - 使用变量中的 gi 标志创建正则表达式

regex - 批量重命名目录名称

ios - 如何反复检查互联网连接?

ios - 如何在 SKScene 中实现 PaintCode 项目

ios - Swift 3 无法使用 SwiftyJSON 和 Alamofire 下标类型为 'String' 的值和类型为 'String' 的索引

c - 为 C 数字文字编写正则表达式

javascript - 工作时间的正则表达式(例如 8a12p)