【问题标题】:Multiple RangeOfString in one variable一个变量中有多个 RangeOfString
【发布时间】:2016-11-16 08:54:17
【问题描述】:

我有什么解决方案可以像下面的代码那样做吗?

let tmp: NSString = data.status
        let tmp1: NSString = data.process
 let range = tmp.rangeOfString(searchText, options: NSStringCompareOptions.CaseInsensitiveSearch) && tmp1.rangeOfString(searchText, options: NSStringCompareOptions.CaseInsensitiveSearch)
        return range.location != NSNotFound

我这样做是因为我想搜索多个字段。 谢谢

【问题讨论】:

    标签: swift


    【解决方案1】:

    如果您正在寻找范围,您应该改用RegularExpression

    import Foundation
    
    let pattern = "search"
    
    let regexp = try! NSRegularExpression(pattern: pattern, options: NSRegularExpression.Options())
    let string = "String to search in search"
    regexp.enumerateMatches(in: string, options: NSRegularExpression.MatchingOptions(), range: NSMakeRange(0, string.characters.count), using:  { (result, flags, stop) in
    
        if result?.range != nil {
            print("Range is \(result!.range.location)-\(result!.range.length)")
        }
    })
    

    【讨论】:

      【解决方案2】:

      你可以试试这个

      if data.status.lowercased().contains(searchText.lowercased()) || data.process.contains(searchText) {
          return true
      }else {
          return false
      } 
      

      【讨论】:

      • 这样我还能保持我的变量范围吗?抱歉问了这么愚蠢的问题,因为我只接触了 swift 3 天
      • 它只会检查搜索字符串是否包含在状态或进程中
      • 我得到“字符串”类型的值没有“小写”成员
      • @DaveCruise 您使用的是哪个版本的 swift
      • 我在这里添加了一个屏幕截图
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-27
      • 1970-01-01
      • 1970-01-01
      • 2018-08-24
      • 2016-01-03
      • 1970-01-01
      相关资源
      最近更新 更多