Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

หาตัวเลขทั้งหมดในสตริงด้วย Regular Expression ใน Python

การแยกเฉพาะตัวเลขจากข้อความเป็นความต้องการทั่วไปใน 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']