朧の.Netの足跡
問合せ先:support@oborodukiyo.info サイト内検索はこちら 
Swift 正規表現でのエスケープ処理の例





下記のサンプルプログラムは、正規表現のエスケープ処理の例です。
このメソッドを利用する時の注意点はエスケープ処理をしてある正規表現に使ってはダメです。
このメソッドを利用する場面のイメージとしては、何らかのデータを使って正規表現に入れ込みたい時に、その何らかのデータをエスケープ処理させて、その後に正規表現の文に組み込む感じ
下記のサンプルプログラムを改変して使いたい場合の注意点は、置換処理の順番を変えるとうまくいかない場合があります。
最初に\の置換をしないとダメです。

            func regexEscape(_ targetString: String) -> String {
                var result: String = targetString
        
                //\の置換
                result = result.replacingOccurrences(of: "\\", with: "\\\\")
                //*
                result = result.replacingOccurrences(of: "*", with: "\\*")
                //+
                result = result.replacingOccurrences(of: "+", with: "\\+")
                //.
                result = result.replacingOccurrences(of: ".", with: "\\.")
                //?
                result = result.replacingOccurrences(of: "?", with: "\\?")
                //{
                result = result.replacingOccurrences(of: "{", with: "\\{")
                //}
                result = result.replacingOccurrences(of: "}", with: "\\}")
                //(
                result = result.replacingOccurrences(of: "(", with: "\\(")
                //)
                result = result.replacingOccurrences(of: ")", with: "\\)")
                //[
                result = result.replacingOccurrences(of: "[", with: "\\[")
                //]
                result = result.replacingOccurrences(of: "]", with: "\\]")
                //-
                result = result.replacingOccurrences(of: "-", with: "\\-")
                //|
                result = result.replacingOccurrences(of: "|", with: "\\|")
                //$
                result = result.replacingOccurrences(of: "$", with: "\\$")
        
                return result
            }

        








良いやや良い普通やや悪い悪い

投稿日時評価コメント