Swiftで文字列を置換する方法について書いています。
文字列からreplaceメソッドまたはreplacingOccurrencesメソッドを呼ぶことで置換することができます。
サンプルコードは、Swiftバージョン5.7で検証しています。
replaceメソッドで置換する
文字列からreplaceメソッドを呼ぶことで、置換することができます。
例えば、下記のように使うことができます。
var ppapText = "pen pineapple apple pen!"
ppapText.replace("pen", with: "grape")
print(ppapText) // grape pineapple apple grape!
最初にppapText
変数に文字列の「pen pineapple apple pen!
」を入れています。
その次の処理で、ppapText
変数からreplaceメソッドを呼び出しています。
第1引数に渡しているのが、置換したい検索文字です。(“pen”)
第2引数(with)に渡しているのは、置換する文字列です。(“grape”)
処理を実行して、print関数で出力すると「grape pineapple apple grape!
」と置換されていることが確認できました。
置換回数を指定する
置換する回数を指定することもできます。
回数を指定したいときには、名前付き引数のmaxReplacements
に置換回数を指定します。
var fruits = "apple grape apple grape apple banana!"
fruits.replace("apple", with: "orange", maxReplacements:2)
print(fruits)
fruits
変数に文字列の「apple grape apple grape apple banana!
」を入れて、次の処理で置換しています。
「”apple”」を「”orange”」に置換しています。
置換する回数をmaxReplacements
に指定しています。
「2」を指定しているので、置換されるのは最初にみつかった2つです。
実行して、fruits
変数をprint関数で出力すると「orange grape orange grape apple banana!
」と置換されました。
最初の2つの「apple
」だけが置換されました。
replacingOccurrencesメソッドで置換する
文字列からreplacingOccurrencesメソッドを呼ぶことでも、同じように置換することができます。
例えば、下記のように使います。
let ppapText = "pen pineapple apple pen!"
let gpagText = ppapText.replacingOccurrences(of: "pen", with: "grape")
print(gpagText) // grape pineapple apple grape!
最初にppapText
変数に対して、文字列の「pen pineapple apple pen!
」を代入しています。
次の処理で、replacingOccurrencesメソッドを使って置換しています。
名前付き引数のof
に検索する文字列を指定して、with
に置換文字列を指定します。
置換した結果をgpagText
変数で受け取っています。
このようにreplaceメソッドと違って、変数の中身を変えるのではなく、replacingOccurrencesでは置換結果を返してくれます。
実行して出力すると、「grape pineapple apple grape!
」になりました。
対象の文字が置換されています。
replacingメソッドで正規表現を使って置換する
最後に正規表現を使って、置換する方法です。
正規表現を使って置換するときには、文字列からreplacingメソッドを呼び出して置換します。
例えば、下記のように置換することができます。
let text = "123 123 123 Test!!"
let result = text.replacing(/[0-9]+/, with: "hoge")
print(result) // hoge hoge hoge Test!!
最初にtext
変数に文字列の「123 123 123 Test!!
」を代入しています。
次の処理で、text
変数からreplacingメソッドを呼び出しています。
第1引数に渡しているのが、置換対象を検索する正規表現です。
with
に渡しているのが置換文字列になります。
結果をresult
変数で受け取って置換すると、「hoge hoge hoge Test!!
」となりました。
正規表現で指定した数値の箇所を対象にして、置換されたことが確認できました。
Swiftで文字列を置換する方法まとめ
今回はSwiftで文字列を置換する方法を書きました。
記事の内容をまとめると、下記のようになります。
・replacingOccurrencesメソッドでも置換できる。ofに検索文字列、withに置換文字列を指定する。
・replacingを使うことで、正規表現を使って置換することができた。
コメント