在字符串中抓取特定行 - Swift

时间:2015-10-22 16:19:05

标签: ios string swift

swift / xcode / ios新手 - 我想从字符串中获取特定行但不知道如何去做。这是我的字符串:

PRICE                             9.00
TAX                               3.54
TOTAL                             12.54

CASH                              12.54

        THANK YOU FOR SHOPPING!
Receipt Code: 1HI 12D0 00A 0024 //want to grab this 14 character code

有没有人有一种有效的方法来扫描字符串然后获取14个字符的代码?它有时会上升几行或几行,但总是遵循'收据代码:xxx xxxx xxx xxxx'我基本上只是希望它返回没有空格的coe。

3 个答案:

答案 0 :(得分:1)

#include mips_cpu.h

答案 1 :(得分:1)

具有正则表达式的解决方案。

但是它假设字符组是3 - 4 - 3 - 4

let string = "PRICE                             9.00\nTAX                               3.54\nTOTAL                             12.54\n\nCASH                              12.54\n\nTHANK YOU FOR SHOPPING!\nReceipt Code: 1HI 12D0 00A 0024 //want to grab this 14 character code"

let pattern = "\\w{3}[ ]\\w{4}[ ]\\w{3}[ ]\\w{4}"
do {
let regex = try NSRegularExpression(pattern: pattern, options: NSRegularExpressionOptions())
  if let result = regex.firstMatchInString(string, options: NSMatchingOptions(), range: NSMakeRange(0, string.characters.count)) {
    let code = (string as NSString).substringWithRange(result.range).stringByReplacingOccurrencesOfString(" ", withString: "")
  }
} catch let error as NSError {
  print(error)
}

答案 2 :(得分:1)

如果“收据代码”仅出现一次且代码是最后一行:

let bill = self.giveMyTheBill()
let range = bill.rangeOfString("Receipt Code:")
if range != nil {
    let code = bill.substringFromIndex(range!.endIndex)
                   .stringByReplacingOccurrencesOfString(" ", withString: "")
}