การแทนที่และแบ่งข้อความ
แปลงสตริงด้วยการดำเนินการของนิพจน์ประจำ
การแทนที่และแบ่งข้อความ เป็นบทเรียน Swift Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Swift Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
การแทนที่และการแบ่ง
นิพจน์ทั่วไปไม่ได้ใช้สำหรับการจับคู่เท่านั้น สตริงของ Swift สามารถแทนที่ข้อความที่จับคู่ได้และแบ่งตามรูปแบบ เพื่อปรับเปลี่ยนสตริงโดยไม่ต้องใช้ลูปด้วยตนเอง
replacing(_:with:)
replacing(_:with:) ส่งกลับสตริงใหม่ที่การจับคู่ทุกรายการของรูปแบบถูกแทนที่ด้วยข้อความทดแทน
let s = "a1b2c3"
let cleaned = s.replacing(/\d/, with: "*")
print(cleaned)การแทนที่คำทั้งหมด
รูปแบบสามารถเป็นนิพจน์ทั่วไปใดก็ได้ ดังนั้นคุณจึงแทนที่ลำดับตัวเลขทั้งหมดได้ในครั้งเดียวด้วยข้อความทดแทนเพียงชุดเดียว
let s = "order 1234 done"
let masked = s.replacing(/\d+/, with: "#")
print(masked)การเปลี่ยนแปลงสตริงด้วย replace
replace(_:with:) จะปรับเปลี่ยนสตริง var ณ ตำแหน่งเดิม แทนการส่งกลับสำเนา
var text = "hello world"
text.replace(/o/, with: "0")
print(text)การแทนที่ด้วยโคลเชอร์
รูปแบบโคลเชอร์ของ replacing(_:with:) จะรับการจับคู่แต่ละรายการและส่งกลับข้อความทดแทน ทำให้สร้างการแทนที่จากการคำนวณได้
let s = "a1 b2 c3"
let result = s.replacing(/\d+/) { match in
String((Int(match.0) ?? 0) * 10)
}
print(result)การใช้ค่าที่จับได้ในการแทนที่
ภายในโคลเชอร์ คุณสามารถอ่านกลุ่มจับค่าจากการจับคู่เพื่อสร้างข้อความทดแทนได้
let s = "2024-05"
let out = s.replacing(/(\d+)-(\d+)/) { m in
"\(m.2)/\(m.1)"
}
print(out)split(separator:)
สตริงรองรับ split(separator:) ด้วยนิพจน์ทั่วไป โดยจะแบ่งสตริงทุกตำแหน่งที่รูปแบบตรงกัน
let csv = "a,b;c,d"
let parts = csv.split(separator: /[,;]/)
print(parts)การแบ่งโดยใช้ช่องว่าง
งานที่พบบ่อยคือการแบ่งสตริงเป็นคำตามลำดับช่องว่างใด ๆ โดยใช้ /\s+/
let line = "the quick brown"
let words = line.split(separator: /\s+/)
print(words.count)
print(words)การจำกัดจำนวนการแบ่ง
พารามิเตอร์ maxSplits จะจำกัดจำนวนครั้งที่แบ่ง ทำให้ส่วนที่เหลือยังคงอยู่รวมกัน
let s = "a-b-c-d"
let parts = s.split(separator: /-/, maxSplits: 1)
print(parts)การตัดแต่งและการแทนที่
ผสานการดำเนินการเข้าด้วยกัน: แทนที่รูปแบบที่ไม่ต้องการ จากนั้นแบ่ง เพื่อทำความสะอาดและแยกข้อมูลเข้าเป็นหน่วยในกระบวนการต่อเนื่อง
let raw = " one,, two ,,three "
let cleaned = raw.replacing(/,+/, with: ",")
let items = cleaned.split(separator: ",").map { $0.trimmingCharacters(in: .whitespaces) }
print(items)replacing เทียบกับ replacingOccurrences
replacing สำหรับนิพจน์ทั่วไปทำงานกับรูปแบบ ส่วน replacingOccurrences(of:with:) รุ่นเก่าจะจัดการได้เฉพาะสตริงย่อยแบบตรงตัว ควรใช้รูปแบบนิพจน์ทั่วไปสำหรับการแก้ไขตามรูปแบบ
let s = "cat hat bat"
print(s.replacing(/[ch]at/, with: "X"))ตรวจสอบอย่างรวดเร็ว
"a1b2".replacing(/\d/, with: "-") ให้ผลลัพธ์เป็นอะไร?
สรุป
คุณสามารถแทนที่การจับคู่ด้วย replacing(_:with:) (รูปแบบที่รับสตริงหรือโคลเชอร์) และใช้ replace เพื่อแทนที่ ณ ตำแหน่งเดิม รวมทั้งแบ่งสตริงตามนิพจน์ทั่วไปด้วย split(separator:) และ maxSplits สิ่งเหล่านี้ทำให้นิพจน์ทั่วไปกลายเป็นชุดเครื่องมือปรับเปลี่ยนข้อความอย่างครบถ้วน
คำถามที่พบบ่อย
บทเรียน “การแทนที่และแบ่งข้อความ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การแทนที่และแบ่งข้อความ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Swift Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การแทนที่และแบ่งข้อความ”
แปลงสตริงด้วยการดำเนินการของนิพจน์ประจำ คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Swift Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Swift Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การแทนที่และแบ่งข้อความ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Swift Academy นี้ได้ไหม
ได้ บทเรียน Swift Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ค่าคงที่ Regex และการจับคู่
- กลุ่มการจับคู่
- DSL สำหรับ RegexBuilder
- การแทนที่และแบ่งข้อความ