การแยกเฉพาะตัวเลขจากข้อความเป็นข้อกำหนดทั่วไปในการวิเคราะห์ข้อมูลหลาม ทำได้อย่างง่ายดายโดยใช้ไลบรารีนิพจน์ทั่วไปของ python ไลบรารีนี้ช่วยเรากำหนดรูปแบบสำหรับตัวเลขซึ่งสามารถแยกออกมาเป็นสตริงย่อยได้
ตัวอย่าง
ในตัวอย่างด้านล่าง เราใช้ฟังก์ชัน findall() จากโมดูล re พารามิเตอร์ของฟังก์ชันเหล่านี้คือรูปแบบที่เราต้องการแยกและสตริงที่เราต้องการแยก โปรดทราบว่าด้วยตัวอย่างด้านล่าง เราได้เฉพาะตัวเลขเท่านั้น ไม่ใช่จุดทศนิยมหรือเครื่องหมายลบ
import re str=input("Enter a String with numbers: \n") #Create a list to hold the numbers 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") #Create a list to hold the numbers 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']