如何用字符串的 NSRegularExpression 选项替换组的出现?

How to replace occurences of groups with NSRegularExpression option for String?

我只是创建了扩展:

extension String {
    var formattedPhoneNumber: String {
        return replacingOccurrences(of: "^(+48)([0-9]{3})([0-9]{3})([0-9]{3})$", with: "[=10=]   ", options: .regularExpression)
    }
}

并尝试像这样使用它:

let formattedNumber = "+48123456789".formattedPhoneNumber

但它 returns +48123456789 而不是 +48 123 456 789。为什么?

+ 在正则表达式中的意思是“一次或多次”,但你的意思是 + 字面意思,所以你需要转义它。不转义它,正则表达式不匹配,所以你的字符串保持不变。此外,组 0 指的是整个匹配项,而不是第一对括号中的内容。这是第 1 组。

extension String {
    var formattedPhoneNumber: String {
        return replacingOccurrences(of: "^(\+48)([0-9]{3})([0-9]{3})([0-9]{3})$", with: "   ", options: .regularExpression)
    }
}