Tekstin etsiminen ja korvaaminen

Swift:
Tekstin etsiminen ja korvaaminen

How to:

let originalString = "Omena on vihreä. Omena on maukas."
let searchString = "Omena"
let replacementString = "Banaani"

let replacedString = originalString.replacingOccurrences(of: searchString, with: replacementString)
print(replacedString)

Tuloste:

Banaani on vihreä. Banaani on maukas.

Lisäesimerkki säännöllisillä lausekkeilla:

import Foundation

let regexOriginalString = "Kukat 001, Kukat 002, Kukat 003."
let regexPattern = "Kukat \\d{3}"

if let regex = try? NSRegularExpression(pattern: regexPattern, options: []) {
    let newString = regex.stringByReplacingMatches(in: regexOriginalString,
                                                   options: [],
                                                   range: NSRange(0..<regexOriginalString.utf16.count),
                                                   withTemplate: "Kasvit")
    print(newString)
}

Tuloste:

Kasvit, Kasvit, Kasvit.

Deep Dive

Historia: Tekstin etsimis- ja korvaustoiminnot ovat keskeisiä työkaluja ohjelmoinnissa jo vuosikymmenten ajan. Unix-pohjaisissa järjestelmissä työkalut kuten sed ovat tehneet tätä komentorivillä.

Vaihtoehdot: Swiftissä replacingOccurrences-metodi tekee perusvaihdot. Säännöllisten lausekkeiden kanssa, NSRegularExpression mahdollistaa monimutkaisemmat etsintä- ja korvauskuviot.

Toteutus: replacingOccurrences käyttää yksinkertaista merkkijonojen vertailua. NSRegularExpression hyödyntää säännöllisiä lausekkeita, jotka ovat voimakas mutta monimutkainen tapa suorittaa tekstihakuja ja -muunnoksia.

See Also