我只想从任何字符串中删除整数值。有可能吗?
let string = "kjgd5676idbh123456"
我想得到这个字符串= kjgd5676idbh
我只想删除最后一个整数值。如何删除最后一个整数值?
答案 0 :(得分:2)
如果您想删除整个值123456,则可以使用正则表达式\\d+
来匹配1位或更多位的任何数字,并使用美元符号$
将其锚定到字符串的末尾< / p>
let str = "kjgd5676idbh123456"
if let index = str.range(of: "\\d+$", options: .regularExpression)?.lowerBound {
print("Last Number:", str[index...]) // 123456
print("Prefix:", str[..<index]) // kjgd5676idbh
}
如果需要删除一个数字后缀,则只需删除正则表达式的加号。 "\\d$"
答案 1 :(得分:0)
向后搜索第一个非数字字符并删除尾随数字
let string = "kjgd5676idbh123456"
let result : String
if let range = string.rangeOfCharacter(from: CharacterSet.decimalDigits.inverted, options: .backwards) {
result = String(string[..<range.upperBound])
} else {
result = Int(string) == nil ? string : ""
}