การแยกเฉพาะตัวเลขจากข้อความเป็นความต้องการทั่วไปใน Python data analytics ทำได้ง่ายด้วยไลบรารี Regular Expression ของ Python ไลบรารีนี้ช่วยให้เรากำหนดรูปแบบ (patterns) สำหรับหลัก (digits) ซึ่งสามารถแยกเป็น substring ได้
ตัวอย่าง
ในตัวอย่างด้านล่าง เราใช้ฟังก์ชัน findall() จากโมดูล re พารามิเตอร์ของฟังก์ชันเหล่านี้คือรูปแบบที่เราต้องการแยก และสตริงที่เราต้องการแยก โปรดทราบ ด้วยตัวอย่างด้านล่าง เราจะได้เฉพาะหลัก (digits) ไม่ได้รวมจุดทศนิยมหรือเครื่องหมายลบ
import re
str = input("Enter a String with numbers: \n")
# สร้างรายการเก็บตัวเลข
num_list = re.findall(r'\d+', str)
print(num_list)
ผลลัพธ์
การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้:
Enter a String with numbers: Go to 13.8 miles and then -4.112 miles. ['13', '8', '4', '112']
จับจุดทศนิยมและเครื่องหมาย
เราสามารถขยายรูปแบบการค้นหาให้รวมจุดทศนิยมและเครื่องหมายลบหรือบวกในผลลัพธ์การค้นหาได้
ตัวอย่าง
import re
str = input("Enter a String with numbers: \n")
# สร้างรายการเก็บตัวเลข
num_list = re.findall(r'[-+]?[.]?[\d]+', str)
print(num_list)
ผลลัพธ์
การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้:
Enter a String with numbers: Go to 13.8 miles and then -4.112 miles. ['13', '.8', '-4', '.112']