Swift:
การลบตัวอักษรที่ตรงกับรูปแบบ
วิธีการ:
import Foundation
// ตัวอย่าง: การลบตัวเลขทั้งหมดออกจากสตริง
let originalString = "Contact me at 123-456-7890 after 09:00 PM."
let digitsPattern = "[0-9]"
let resultString = originalString.replacingOccurrences(of: digitsPattern, with: "", options: .regularExpression)
print(resultString) // ผลลัพธ์: "Contact me at -- after : PM."
// ตัวอย่าง: การตัดอักขระที่ไม่ใช่ตัวอักษรและตัวเลข
let messyString = "H3!llo, W%@rld-"
let nonAlphanumericPattern = "[^A-Za-z0-9]"
let cleanString = messyString.replacingOccurrences(of: nonAlphanumericPattern, with: "", options: .regularExpression)
print(cleanString) // ผลลัพธ์: "H3lloWrld"
ศึกษาเพิ่มเติม
ก่อน Swift และการโปรแกรมแบบทันสมัย, การจับคู่รูปแบบเป็นเรื่องของเครื่องมือพิเศษและภาษาเช่น sed
, awk
, หรือ Perl ที่รู้จักกันดีสำหรับความสามารถในการประมวลผลข้อความ Swift, ด้วยกรอบการทำงาน Foundation ที่แข็งแกร่ง, ทำให้งานเหล่านี้ง่ายขึ้นในภาษา, ทำให้มากขึ้นสำหรับนักพัฒนา
หนึ่งทางเลือกที่ไม่ใช้ regular expressions คือการทำซ้ำผ่านสตริงโดยใช้วิธี filter
ของ Swift ร่วมกับเงื่อนไขที่กำหนดเองซึ่งก็อาจใช้เวลานานและมีการอ่านที่ยากขึ้น Regular expressions เสนอวิธีที่กระชับ แม้ว่าบางครั้งอาจดูซับซ้อนในการอธิบายรูปแบบที่เราต้องการลบหรือจัดการ
ในเบื้องหลัง, เมื่อคุณใช้งาน replacingOccurrences(of:with:options:)
กับตัวเลือก .regularExpression
, Swift ใช้เครื่องยนต์ regular expression จาก ICU (International Components for Unicode) เพื่อประมวลผลรูปแบบ ICU เป็นไลบรารีที่เข้มแข็งและใช้กันอย่างแพร่หลายสำหรับการสนับสนุน Unicode, รวมถึงการจับคู่รูปแบบ, ซึ่งถูกนำไปใช้ในภาษาการโปรแกรมระดับสูงหลายภาษา
ดูเพิ่มเติม
- Swift String Documentation: https://developer.apple.com/documentation/swift/string
- Swift Regular Expressions: https://developer.apple.com/documentation/foundation/nsregularexpression
- ICU User Guide for Regular Expressions: https://unicode-org.github.io/icu/userguide/strings/regexp.html