如果我有如下字符串:
"abc; expire=Thu, 16-Oct-2014 16:46:53 GMT; path=/;",我正在尝试提取 expire=
和下一个 之间的所有内容>;
这样我就可以获得时间戳,我将如何在 Swift 中执行此操作?我完全被字符和 StringIndex 的想法搞糊涂了。我觉得下面的代码会给我 "expire="
:
var range = cookie!.rangeOfString("expires=");
但是我不明白我应该从那里去哪里。
在类似 Java 的语言中,算法类似于:
1) 定位“expires=”的索引;
2) 将“expires=”之后的所有子串取到完整字符串的末尾;
3) 在子字符串中查找第一次出现的“;”
4) 从索引 0 到索引 3 中的所有内容都是过期时间戳。
您如何处理 Swift 字符串?
最佳答案
在 Swift 中,您可以使用正则表达式搜索字符串,而无需处理 NSRegularExpression
明确地:
let str = "abc; expire=Thu, 16-Oct-2014 16:46:53 GMT; path=/;"
let range = str.rangeOfString("(?<=expire=)[^;]*", options: .RegularExpressionSearch)
if let range = optRange? {
print(str.substringWithRange(range))
} else {
print("Not found")
}
正则表达式很简单:[^;]*
表示“直到第一个分号的一系列字符”; (?<=expire=)
意思是“仅当前面有 expire=
字符串时才匹配”。
关于ios - Swift 中的字符串操作(子字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26166775/