繁体   English   中英

如何在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,即“这\\ 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM