[Swift]Regular Expression with Swift

Swiftのexercism.iosを解いている時に、正規表現を使いたい箇所に出くわしました。
Swift、ObjCのそれを使わないといけないのですね。私が扱う言語の中では一番手間隙がかかるやつでした。

メモメモ。以下は、入力文字列に対して 0-9 の数字を文字列として抜き出すメソッドです。


private func format(startingNumber: String) -> String {
let pattern = "[0-9]+"
let regex = try! NSRegularExpression(pattern: pattern, options: .CaseInsensitive)
let matches = regex.matchesInString(startingNumber, options: [], range: NSMakeRange(0, startingNumber.characters.count))
var results: [String] = []
matches.forEach { match in
results.append((startingNumber as NSString).substringWithRange(match.rangeAtIndex(0)))
}
return results.joinWithSeparator("")
}

他、String(instance) として、 instance から値を取得できる CustomStringConvertible を使ったので合わせてメモ。

https://developer.apple.com/library/mac/documentation/Swift/Reference/Swift_CustomStringConvertible_Protocol/index.html

Swift、Appleの2.1向けの資料は読んでいたのですが、やっぱり巨大だ…

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.