正则表达式得到 "words" 由 space(s) 分隔?
regex to get "words" delimited by space(s)?
要从由 space(s) 分隔的字符串中获取 "words",正则表达式(将在 IOS、"NSRegularExpression" 中使用)是什么,即可以是“”,或“”,或“”等作为分隔符。
因此:
"26:43:33 S 153:02:51 E"
会给:
1-"26:43:33"
2-"S"
3-"153:02:51"
4-"E"
So therefore:
"26:43:33 S 153:02:51 E"
Would give:
1-"26:43:33"
2-"S"
3-"153:02:51"
4-"E"
因此,如果您要为此使用正则表达式,则需要查找所有连续的 not-space。像这样:
let s = "26:43:33 S 153:02:51 E" as NSString
let pattern = "[^ ]+"
let reg = try! NSRegularExpression(pattern: pattern, options: [])
let matches = reg.matchesInString(s as String, options: [], range: NSMakeRange(0, s.length))
let result = matches.map {s.substringWithRange([=12=].range)}
// result is: ["26:43:33", "S", "153:02:51", "E"]
作为正则表达式的替代方法,我建议在您的字符串上使用 split
方法。
let string = "26:43:33 S 153:02:51 E"
let words = string.characters.split { [=10=] == " " }.map { String([=10=]) }
因为对字符属性调用split
会return一个Character
类型的数组,所以需要用map
方法进行转换回到字符串。 map
将对集合的每个元素执行闭包。在这种情况下,我们只是使用它将每个元素转换为 String
要从由 space(s) 分隔的字符串中获取 "words",正则表达式(将在 IOS、"NSRegularExpression" 中使用)是什么,即可以是“”,或“”,或“”等作为分隔符。
因此:
"26:43:33 S 153:02:51 E"
会给:
1-"26:43:33"
2-"S"
3-"153:02:51"
4-"E"
So therefore:
"26:43:33 S 153:02:51 E"
Would give:
1-"26:43:33" 2-"S" 3-"153:02:51" 4-"E"
因此,如果您要为此使用正则表达式,则需要查找所有连续的 not-space。像这样:
let s = "26:43:33 S 153:02:51 E" as NSString
let pattern = "[^ ]+"
let reg = try! NSRegularExpression(pattern: pattern, options: [])
let matches = reg.matchesInString(s as String, options: [], range: NSMakeRange(0, s.length))
let result = matches.map {s.substringWithRange([=12=].range)}
// result is: ["26:43:33", "S", "153:02:51", "E"]
作为正则表达式的替代方法,我建议在您的字符串上使用 split
方法。
let string = "26:43:33 S 153:02:51 E"
let words = string.characters.split { [=10=] == " " }.map { String([=10=]) }
因为对字符属性调用split
会return一个Character
类型的数组,所以需要用map
方法进行转换回到字符串。 map
将对集合的每个元素执行闭包。在这种情况下,我们只是使用它将每个元素转换为 String