Swift: 正規表現を使って文字列を置き換える

SwiftではStringクラス用に正規表現での文字列置換が用意されています。

String.stringByReplacingOccurrencesOfString(target, withString, options, range)を使用します。ここで、optionsにNSStringCompareOptions.RegularExpressionSearchを指定することで正規表現が有効となります。

以下の例は、sourceに入った文字列の前後の空白と削除し文字列の空白を1つにまとめるための処理が書かれています。

var destination : String = source.stringByReplacingOccurrencesOfString("^ +| +$", withString:"", options:NSStringCompareOptions.RegularExpressionSearch, range: nil)

destination = destination.stringByReplacingOccurrencesOfString(" +", withString: " ", options: NSStringCompareOptions.RegularExpressionSearch, range: nil)
println("[\(destination)]")

その他、NSStringCompareOptionsはその他に以下のようなオプションがあります。

NSLiteralSearch(正確な一致) NSCaseInsensitiveSearch(大文字小文字を無視) 面倒になったので詳しくはAPI Documentを


Comments !