パターンに一致する文字を削除する

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では、正規表現を使用してパターンを定義し、一致する文字列を見つけて操作を行います。一方で、よりシンプルな文字列操作が必要な場合、StringreplacingOccurrences(of:with:)メソッドを使用する選択肢もあります。しかし、これはより単純な置換に限定され、正規表現のような柔軟性や強力なパターンマッチング機能は提供しません。

See Also (関連情報)