[英]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,即“这\\ n是我的示例\\ n消息。\\ n谢谢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: $0.endIndex..<endIndex).map {
substringToIndex($0.endIndex)
}
} ?? self
}
}
fullMessage.sliceAfter("Leigh", to: "\n") // "This\n is\n my example\n message.\n Thanks Leigh Smith\n"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.