Swiftで文字列の最後の4文字を抽出する方法|substringとsuffixの使い方を解説
Swiftで文字列の末尾から4文字を抽出したい場合、Stringクラスが標準で提供している機能を活用できます。Swiftはバージョンアップのたびにメソッドの追加・非推奨化・改善が繰り返されてきたため、同じ目的を実現するための手段も複数存在します。本記事では、バージョンごとの代表的な抽出方法をサンプルコード付きでわかりやすく解説します。
方法1:substringを使う(Swift 3)
Swift 3では、substring(from:)メソッドを使って文字列の一部を切り出すことができました。文字列の終了インデックスからオフセットを指定することで、末尾の文字を取得できます。
var Str1 = "12312$$33@"
print(Str1.substring(from: Str1.index(Str1.endIndex, offsetBy: -4)))
このコードを実行すると、コンソールには末尾4文字である「33@」が出力されます。
方法2:suffixを使う(Swift 4以降)
Swift 4以降ではsubstringメソッドが非推奨となり、代わりによりシンプルなsuffixメソッドが使えるようになりました。suffixは、文字列の末尾から指定した数の文字をそのまま返してくれるため、コードが非常にすっきりします。
print(Str1.suffix(4))
実行結果は方法1と同じく「33@」です。記述量が少なく可読性も高いことから、現在の開発ではこちらの方法が推奨されています。
関数化して再利用する
この処理を関数としてまとめておけば、プロジェクト内のどこからでも再利用できて便利です。String型のextensionとして定義してもよいでしょう。
func getLastFew(range ofCount: Int, from string: String) -> String {
return String(string.suffix(ofCount))
}呼び出し方は以下の通りです。
print(getLastFew(range: 4, from: Str1))
このように、Swiftではバージョンによって適切なAPIが異なります。現在開発中のプロジェクトでは、非推奨となったsubstringではなく、suffixを使うことをおすすめします。
-
Pythonで文字列から部分文字列を抽出する方法|正規表現のグループキャプチャ活用
正規表現のグループキャプチャを使った部分文字列の抽出 Pythonで文字列の中から特定の部分文字列を取り出したい場合、reモジュールの正規表現における「グループキャプチャ」を利用するのが効果的です。この手法を使うには、抽出したい部分文字列のフォーマットや、その前後の文脈をある程度把握しておく必要があります。 例えば、文章の中から「$xxx,xxx.xx」という形式で書かれた金額情報を抽出したいとします。その場合は、re.search()と括弧で囲んだキャプチャグループを次のように組み合わせます。 import re text = The phone is priced at $15,745.
-
Pythonで文字列から数字を抽出する方法【isdigitと正規表現の使い分け】
正の整数だけを抽出するシンプルな方法文字列に含まれる正の整数だけを取り出したい場合は、split()で空白ごとに文字列を分割し、isdigit()で各要素が数字のみで構成されているかを判定する方法が手軽です。>>> s = h3110 23 cat 444.4 rabbit 11 2 dog >>> [int(x) for x in s.split() if x.isdigit()] [23, 11, 2]この方法では、すべてが数字で構成された要素だけが整数に変換されてリストに追加されます。そのため「h3110」のように文字と数字が混ざった語句や、「444.