如何扩展 Swift 中的字符串 NSRange?
How to extend a string NSRange in Swift?
我在 Swift 中有一个字符串范围,但我想将它扩展几个字符,但我不知道如何执行此操作。
这是我的代码:
var fullMessage = "This\n is\n my example\n message.\n Thanks Leigh Smith\n and some more characters\n and lots more \n"
var startName = fullMessage.rangeOfString("Leigh")
var endMessage = fullMessage[advance(startName!.endIndex,0)...advance(fullMessage.endIndex,-1)]
var posRange = endMessage.rangeOfString("\n")
var pos = posRange?.startIndex
var xpos = advance(startName!.endIndex, 0)
fullMessage = fullMessage[advance(fullMessage.startIndex, 0)...advance(startName!.endIndex,advance(pos, 0))]
我的问题是 fullMessage 可能包含随机数 \n。我想从 fullMessage 字符串的开头获取字符串,直到 "Leigh" 之后的 \n 即 "This\n is\n my example\n message.\n Thanks Leigh Smith\n".
我的想法是找到下一个“\n”,然后扩大原来的范围。希望有一种简单的方法可以用更好的代码来做到这一点。
谢谢
澳门
import Foundation
let fullMessage = "This\n is\n my example\n message.\n Thanks Leigh Smith\n and some more characters\n and lots more \n"
extension String {
func sliceAfter(after: String, to: String) -> String {
return rangeOfString(after).flatMap {
rangeOfString(to, range: [=10=].endIndex..<endIndex).map {
substringToIndex([=10=].endIndex)
}
} ?? self
}
}
fullMessage.sliceAfter("Leigh", to: "\n") // "This\n is\n my example\n message.\n Thanks Leigh Smith\n"
我在 Swift 中有一个字符串范围,但我想将它扩展几个字符,但我不知道如何执行此操作。
这是我的代码:
var fullMessage = "This\n is\n my example\n message.\n Thanks Leigh Smith\n and some more characters\n and lots more \n"
var startName = fullMessage.rangeOfString("Leigh")
var endMessage = fullMessage[advance(startName!.endIndex,0)...advance(fullMessage.endIndex,-1)]
var posRange = endMessage.rangeOfString("\n")
var pos = posRange?.startIndex
var xpos = advance(startName!.endIndex, 0)
fullMessage = fullMessage[advance(fullMessage.startIndex, 0)...advance(startName!.endIndex,advance(pos, 0))]
我的问题是 fullMessage 可能包含随机数 \n。我想从 fullMessage 字符串的开头获取字符串,直到 "Leigh" 之后的 \n 即 "This\n is\n my example\n message.\n Thanks Leigh Smith\n".
我的想法是找到下一个“\n”,然后扩大原来的范围。希望有一种简单的方法可以用更好的代码来做到这一点。
谢谢
澳门
import Foundation
let fullMessage = "This\n is\n my example\n message.\n Thanks Leigh Smith\n and some more characters\n and lots more \n"
extension String {
func sliceAfter(after: String, to: String) -> String {
return rangeOfString(after).flatMap {
rangeOfString(to, range: [=10=].endIndex..<endIndex).map {
substringToIndex([=10=].endIndex)
}
} ?? self
}
}
fullMessage.sliceAfter("Leigh", to: "\n") // "This\n is\n my example\n message.\n Thanks Leigh Smith\n"