対象:
Swift3

文字列を検索する(Swift)

文字列中にある任意の文字列を検索するにはrangeメソッドが利用できる。

        let sentence = "Apple🍎は新しい言語Swiftを発表しました。"
        // 文字列が見つかると範囲が返る
        if let range = sentence.range(of: "Swift") {
            print("\(sentence[range])が見つかりました。")
        } else {
            print("文字列は見つかりませんでした。")
        }
Swiftが見つかりました。

rangeメソッドで大文字小文字を区別せず(case-insensitive)に任意の文字列を検索するには、options引数でString.CompareOptions.caseInsensitiveを渡せば良い。

        // 文字列が見つかると範囲が返る
        if let range = sentence.range(of: "swift",options: .caseInsensitive) {
            print("\(sentence[range])が見つかりました。")
        } else {
            print("文字列は見つかりませんでした。")
        }

あるいは、rangeメソッドのoptions引数にString.CompareOptions.regularExpressionを指定すると、正規表現を使った検索が可能になるので、これを利用して文字列を検索することもできる。(?i)フラグを検索したい文字列の前に付加すると、大文字小文字を区別せずに検索できる。

        if let range = sentence.range(of: "(?i)swift", options: .regularExpression) {
(2015/02/18)
(2016/10/21 更新) Swift 3.0対応。

新着情報
【iOS Objective-C, Swift Tips】画像の向きを指定して保存する(Swift)
【iOS Objective-C, Swift Tips】UIImagePickerControllerの表示を日本語にする(Swift)
【iOS Objective-C, Swift Tips】ウィンドウの階層構造を3D表示する(Swift)

Copyright(C) 2004-2016 モバイル開発系(K) All rights reserved.
[Home]