0Pricing
Swift Academy · บทเรียน

การแทนที่และแบ่งข้อความ

แปลงสตริงด้วยการดำเนินการของนิพจน์ประจำ

การแทนที่และแบ่งข้อความ เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ค่าคงที่ Regex และการจับคู่
  2. กลุ่มการจับคู่
  3. DSL สำหรับ RegexBuilder
  4. การแทนที่และแบ่งข้อความ
← กลับไปที่ Swift Academy