מחיקת תווים התואמים לתבנית

Swift:
מחיקת תווים התואמים לתבנית

איך לעשות:

בSwift, תוכלו למחוק תווים התואמים לתבנית בעזרת CharacterSet, רגולר אקספרשנס, או מתודות מותאמות אישית. ככה זה עובד:

var greeting = "שלום, עולם! 🌍👋"
let charactersToRemove = CharacterSet(charactersIn: "!,🌍👋")
let filteredGreeting = greeting.unicodeScalars.filter { !charactersToRemove.contains($0) }.string
print(filteredGreeting) // יודפס: "שלום עולם"

או עם רגולר אקספרשנס:

var info = "שם: יוסי, גיל: 28, עיר: ירושלים"
let pattern = "[^א-ת ]" // תואם כל תו שאינו אות או רווח
if let regex = try? NSRegularExpression(pattern: pattern) {
    let range = NSRange(location: 0, length: info.utf16.count)
    info = regex.stringByReplacingMatches(in: info, range: range, withTemplate: "")
}
print(info) // יודפס: "שם יוסי גיל עיר ירושלים"

עיון מעמיק

מחיקת תווים תואמי תבנית במחרוזות היא עניין ישן כמעט כמו תכנות עצמו. בעבר, שפות תכנות עשו זאת בצורות שונות, מפונקציות שורה אחת עד ליברריות מסובכות. כיום, בSwift, אפשר להשתמש במתודות שסטות האותיות (CharacterSet) למציאת תווים מוגבלים או ברגולר אקספרשנס לדפוסים מורכבים יותר.

מבחינת ביצועים, שקולו את כמות הנתונים שאתם מעבדים. CharacterSet מספקת ביצועים טובים לצורך הסרת תווים סטטיים, בעוד רגולר אקספרשנס יכולות להיות יעילות יותר לפעולות מורכבות אך יכולות גם להיות יקרות מבחינת משאבים.

לבסוף, שימוש ברגולר אקספרשנס דורש הבנה של הסינטקס שלהם וכיצד הם עובדים, כך שיש להשקיע זמן בלמידת הדפוסים וטסטינג התוצאות.

ראו גם: