正则表达式"单词"由空格分隔?

时间:2016-05-19 02:34:37

标签: ios regex swift nsregularexpression

正则表达式是什么(在IOS中使用," NSRegularExpression")来获取"单词"来自由空格分隔的字符串,即可以是" ",或" ",或" "等作为划界。

因此:

"26:43:33 S     153:02:51   E"

会给:

1-"26:43:33"
2-"S"
3-"153:02:51"
4-"E"

2 个答案:

答案 0 :(得分:2)

作为正则表达式的替代方案,我建议在字符串上使用split方法。

let string = "26:43:33 S     153:02:51   E"
let words = string.characters.split { $0 == " " }.map { String($0) }

因为在characters属性上调用split将返回Character类型的数组,我们需要使用map方法将它们转换回字符串。 map将对集合的每个元素执行闭包。在这种情况下,我们只是使用它将每个元素转换为String

答案 1 :(得分:1)

  

因此:

"26:43:33 S     153:02:51   E"
     

会给:

1-"26:43:33"
2-"S"
3-"153:02:51"
4-"E"

因此,如果您打算使用正则表达式,那么您需要查找所有连续的非空间延伸。像这样:

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($0.range)}
// result is: ["26:43:33", "S", "153:02:51", "E"]