Swift:
パターンに一致する文字を削除する
How to: (方法)
import Foundation
let originalString = "Hello, 2023! Happy New Year!"
let pattern = "[0-9,!]"
let regex = try! NSRegularExpression(pattern: pattern, options: [])
let range = NSRange(location: 0, length: originalString.utf16.count)
let cleanString = regex.stringByReplacingMatches(in: originalString, options: [], range: range, withTemplate: "")
print(cleanString) // "Hello Happy New Year"
サンプル出力は Hello Happy New Year
になります。
Deep Dive (詳細な解説)
文字の削除は多くのプログラムで必要とされるため、Swiftにはこの機能をサポートする文字列操作のメソッドが組み込まれています。古くはUNIXセド(sed)などのツールで行われてきましたが、SwiftではNSRegularExpression
を使うことで柔軟かつ強力なパターンマッチングが可能です。NSRegularExpression
では、正規表現を使用してパターンを定義し、一致する文字列を見つけて操作を行います。一方で、よりシンプルな文字列操作が必要な場合、String
のreplacingOccurrences(of:with:)
メソッドを使用する選択肢もあります。しかし、これはより単純な置換に限定され、正規表現のような柔軟性や強力なパターンマッチング機能は提供しません。
See Also (関連情報)
- Swift公式ドキュメント: String
- NSRegularExpressionクラスリファレンス: NSRegularExpression
- 正規表現の基本: Regular Expressions Quick Start
- 文字列操作についてのチュートリアル: RayWenderlich.com