【问题标题】:swift - get value from string using regular expressionswift - 使用正则表达式从字符串中获取值
【发布时间】:2018-05-22 18:55:50
【问题描述】:

我想在 swift 4 中从字符串中提取一个值。

我尝试使用正则表达式,但它不起作用我只想从此查询中提取 PK 值:

"INSERT INTO table(PK,anotherValue) VALUES ('38061','1233')"

我希望这里的结果是:38061

我尝试过的正则表达式:

   var results = [String]()
    do{
    let regex = try NSRegularExpression(pattern:" VALUES ('(.*?)'", options: [])
    regex.enumerateMatches(in: query, options: [], range: NSMakeRange(0, query.utf16.count)) { result, flags, stop in
        if let r = result?.range(at: 1), let range = Range(r, in: query) {
            results.append(String(query[range]))
        }
    }
    } catch {
       print( error)
    }
    print(results) 

我得到以下错误:

Error Domain=NSCocoaErrorDomain Code=2048 "值" VALUES ('(.?)'" 无效。" UserInfo={NSInvalidValue= VALUES ('(.?)'

【问题讨论】:

    标签: ios swift regex string


    【解决方案1】:

    括号是捕获组的特殊字符。

    要将括号视为文字字符,您必须对其进行转义:

    pattern:" VALUES \\('(.*?)'"
    

    请看: https://regex101.com/r/lyzoex/1

    【讨论】:

      猜你喜欢
      • 2016-08-13
      • 1970-01-01
      • 1970-01-01
      • 2019-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多