- 1 1. ความจำเป็นในการแยกสตริงใน Python
- 2 2. การแยกสตริงพื้นฐานด้วยเมธอด split() ของ Python
- 3 3. การแยกสตริงตามบรรทัดด้วย splitlines()
- 4 4. การใช้ Regular Expression: re.split()
- 5 5. เมธอดที่มีประโยชน์อื่น ๆ: partition() และ rpartition()
- 6 6. ตัวอย่างโค้ดและการประยุกต์ใช้
- 7 7. สรุป: การใช้เมธอดแยกสตริงใน Python
1. ความจำเป็นในการแยกสตริงใน Python
1.1. ความสำคัญของการจัดการสตริง
การจัดการสตริงใน Python มีความสำคัญอย่างมาก ไม่ว่าจะเป็นการประมวลผลข้อมูลข้อความทั่วไป การเตรียมข้อมูลก่อนการวิเคราะห์ หรือการทำงานด้าน Data Science หลายกรณีล้วนต้องอาศัยการแยกสตริง เช่น การวิเคราะห์ไฟล์ CSV การประมวลผลข้อมูลที่ผู้ใช้ป้อน หรือการจัดการข้อความที่ได้จากการ Web Scraping การแยกสตริงถือเป็นเทคนิคที่ขาดไม่ได้
1.2. สิ่งที่คุณจะได้เรียนรู้จากบทความนี้
ในบทความนี้ เราจะอธิบายตั้งแต่วิธีพื้นฐานในการแยกสตริงด้วย Python ไปจนถึงการใช้ Regular Expression ขั้นสูง นอกจากนี้ยังมีการอธิบายการใช้งานเมธอดหลัก ๆ เช่น split()
, splitlines()
, re.split()
พร้อมยกตัวอย่างโค้ดที่สามารถนำไปใช้จริงได้
2. การแยกสตริงพื้นฐานด้วยเมธอด split() ของ Python
2.1. split() เมธอดคืออะไร?
split()
เป็นหนึ่งในเมธอดพื้นฐานที่สุดในการจัดการสตริงของ Python โดยจะแยกข้อความตามตัวคั่น (Delimiter) ที่กำหนด และส่งกลับเป็น List ค่าเริ่มต้นคือการใช้ช่องว่าง (Space, Tab, Newline) เป็นตัวคั่น
text = "apple banana cherry"
fruits = text.split()
print(fruits) # ผลลัพธ์: ['apple', 'banana', 'cherry']
2.2. การกำหนดตัวคั่นเอง
คุณสามารถกำหนดตัวคั่นเองได้ เช่น การแยกข้อความที่คั่นด้วยเครื่องหมายจุลภาคหรือเซมิโคลอน:
text = "apple,banana,cherry"
fruits = text.split(",")
print(fruits) # ผลลัพธ์: ['apple', 'banana', 'cherry']
2.3. การจำกัดจำนวนครั้งในการแยก
คุณสามารถระบุจำนวนครั้งสูงสุดที่ต้องการให้แยกได้ โดยใส่เป็นอาร์กิวเมนต์ตัวที่สอง:
text = "apple,banana,cherry,orange"
fruits = text.split(",", 2)
print(fruits) # ผลลัพธ์: ['apple', 'banana', 'cherry,orange']
กรณีนี้จะช่วยให้เก็บส่วนที่เหลือไว้ได้อย่างสะดวก

3. การแยกสตริงตามบรรทัดด้วย splitlines()
3.1. ภาพรวมของ splitlines()
splitlines()
เป็นเมธอดที่ใช้แยกสตริงตามรหัสขึ้นบรรทัดใหม่ เหมาะสำหรับการอ่านไฟล์ทีละบรรทัดหรือเมื่อจัดการข้อมูลที่มีหลายบรรทัด
text = """apple
banana
cherry"""
lines = text.splitlines()
print(lines) # ผลลัพธ์: ['apple', 'banana', 'cherry']
3.2. การเก็บรหัสขึ้นบรรทัดไว้
คุณสามารถเลือกเก็บรหัสขึ้นบรรทัดไว้ในผลลัพธ์ได้ โดยใส่ True
:
text = """applenbananancherry"""
lines = text.splitlines(True)
print(lines) # ผลลัพธ์: ['applen', 'bananan', 'cherry']
4. การใช้ Regular Expression: re.split()
4.1. วิธีใช้ re.split() เบื้องต้น
โมดูล re
ของ Python ช่วยให้สามารถใช้ Regular Expression ในการแยกสตริงได้อย่างยืดหยุ่น เช่น แยกด้วยหลายตัวคั่นพร้อมกัน
import re
text = "apple123banana456cherry"
fruits = re.split(r'd+', text)
print(fruits) # ผลลัพธ์: ['apple', 'banana', 'cherry']
4.2. การแยกด้วยหลายตัวคั่น
คุณสามารถใช้ RegEx ระบุได้ เช่น แยกด้วยคอมมา, เซมิโคลอน และช่องว่าง:
text = "apple, banana; cherry"
fruits = re.split(r'[;, ]+', text)
print(fruits) # ผลลัพธ์: ['apple', 'banana', 'cherry']
4.3. การแยกด้วยแพทเทิร์นซับซ้อน
re.split()
สามารถแยกข้อความตามรูปแบบที่ซับซ้อนได้ เช่น เลขหรืออักขระเฉพาะ
text = "apple100banana200cherry"
fruits = re.split(r'd+', text)
print(fruits) # ผลลัพธ์: ['apple', 'banana', 'cherry']

5. เมธอดที่มีประโยชน์อื่น ๆ: partition() และ rpartition()
5.1. การใช้ partition()
partition()
จะแยกสตริงออกเป็น 3 ส่วน โดยเก็บตัวคั่นไว้ด้วย
text = "apple@banana@cherry"
parts = text.partition("@")
print(parts) # ผลลัพธ์: ('apple', '@', 'banana@cherry')
5.2. การใช้ rpartition() จากด้านขวา
rpartition()
คล้ายกับ partition()
แต่จะเริ่มแยกจากตัวคั่นฝั่งขวาสุด
text = "apple@banana@cherry"
parts = text.rpartition("@")
print(parts) # ผลลัพธ์: ('apple@banana', '@', 'cherry')
6. ตัวอย่างโค้ดและการประยุกต์ใช้
6.1. การใช้การแยกสตริงในงานจริง
เช่น การรับอินพุตจากผู้ใช้ แล้วแยกข้อมูลตามรูปแบบที่ต้องการ:
user_input = "name:apple, age:30, city:Tokyo"
info = user_input.split(", ")
for item in info:
key, value = item.split(":")
print(f"{key}: {value}")
6.2. การจัดการข้อมูลจากไฟล์
เมื่ออ่านข้อมูลจากไฟล์ อาจต้องการแยกตามบรรทัด:
with open('data.txt', 'r') as file:
lines = file.read().splitlines()
print(lines)

7. สรุป: การใช้เมธอดแยกสตริงใน Python
7.1. สรุป
Python มีเมธอดหลายแบบสำหรับการแยกสตริง เช่น split()
, splitlines()
, re.split()
, partition()
หากใช้อย่างถูกต้องจะช่วยเพิ่มประสิทธิภาพในการประมวลผลและวิเคราะห์ข้อมูล
7.2. ขั้นตอนต่อไป
ลองนำเมธอดเหล่านี้ไปใช้สร้างสคริปต์หรือโปรเจกต์เล็ก ๆ เพื่อดูว่าแบบไหนเหมาะสมที่สุดกับงานจริง