【问题标题】:How to extract Text Before and After NSRange如何在 NSRange 之前和之后提取文本
【发布时间】:2016-04-24 20:30:05
【问题描述】:

我正在对大型内容进行搜索。使用 NSRange 来实现。

range = [textToSearch rangeOfString:searchText options:NSCaseInsensitiveSearch];

然后我像这样检查字符串的存在:

if(range.location != NSNotFound){
   //String found
 }

现在我只有指定字符串的范围。我想将我的搜索结果显示为:

假设我的内容是这样的:

我是个电影迷。当朋友们想知道 1980 年哪部电影获得了奥斯卡奖,或者谁在《大白鲨》中扮演警察局长时,他们会问我。不过,我的朋友们已经不再问我是否想出去看电影了。

现在我已经搜索了“已停止”

现在我想将我的搜索显示为:

结果:

不过,我的朋友们停止问我是否愿意

我想要搜索结果前后的一些词。我不知道如何实现这一点。

【问题讨论】:

  • 通过减去您想要包含的字符数来调整位置。确保执行 MAX(0, newLocation) 以避免变为负数。对长度执行相同的操作,注意不要超过字符串的末尾。
  • 如何实现?
  • 下一次,展示你的尝试。 SO 不是代码编写服务。
  • @Avi 我已经编写了我尝试过的代码......但我无法继续这就是我问的原因......如果你觉得我想要一项服务,那就不要这样做
  • 因此,如果可以,请展示您编写的代码并解释为什么它不起作用。答案是 4 行代码,其中两行是简单的数学表达式。

标签: ios objective-c search nsrange


【解决方案1】:

您可以使用正则表达式,例如:(\w+[\s,]+){0,4}stopped([\s,]+\w+){0,6},大致翻译为匹配 stopped 之前的 4 个单词和之后的 6 个单词。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-16
    • 2022-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多