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

ค้นหาตัวเลขทั้งหมดในสตริงโดยใช้นิพจน์ทั่วไปใน Python


การแยกเฉพาะตัวเลขจากข้อความเป็นข้อกำหนดทั่วไปในการวิเคราะห์ข้อมูลหลาม ทำได้อย่างง่ายดายโดยใช้ไลบรารีนิพจน์ทั่วไปของ 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']