如何用字符串的 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)
}
}
我只是创建了扩展:
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)
}
}