我显然做错了什么,因为这花了我这么长时间来做以下事情:(下面的Playground代码)。
注意:Swift 3.1 ~
我只是想从piz(123)zazz
中取出123
let aString = "piz(123)zazz"
let startBracket: Character = "("
if let idx1 = aString.characters.index(of: startBracket) {
let pos1 = aString.characters.distance(from: aString.startIndex, to: idx1)
print("Found \(startBracket) at position \(pos1)")
}
else {
print("Not found")
}
let endBracket: Character = ")"
if let idx2 = aString.characters.index(of: endBracket) {
let pos2 = aString.characters.distance(from: aString.startIndex, to: idx2)
print("Found \(startBracket) at position \(pos2)")
}
else {
print("Not found")
}
let range = pos1..<pos2 // << this is not working, I give up!!!
let result_1 = aString.substring(with: range)
字符串
2条答案
按热度按时间y53ybaqx1#
这就简单多了:
(
范围的upperBound
)
范围的lowerBound
字符串
或者正则表达式,它的代码更多,但它更通用
型
xmd2e60i2#
当您尝试使用时,您的
pos1
和pos2
超出了作用域。它们都已在if
块内定义,并且它们的作用域在此结束。我建议在顶部声明它们,以便将它们纳入范围。
字符串