แนวคิด
ใช้ Regular Expression re.findall() ค้นหา pattern เปอร์เซ็นต์ ในสตริง
ตัวอย่างโค้ด
import re
my_string = 'Python is % always fun % to learn % and teach'
print("สตริง:", my_string)
# Pattern: ตัวเลข 0 หลักขึ้นไป ตามด้วย %
my_result = re.findall(r'\d*%', my_string)
print("ผลลัพธ์:", my_result)
ผลลัพธ์
สตริง: Python is % always fun % to learn % and teach
ผลลัพธ์: ['%', '%', '%']
คำอธิบาย Pattern
\d*ตัวเลข 0 หรือมากกว่า (greedy)%ตัวอักษร % ตรงตัว- จับคู่:
%,50%,100%ฯลฯ
Pattern ที่ดีกว่า
# ต้องการตัวเลขอย่างน้อย 1 ตัว
re.findall(r'\d+%', my_string) # ['50%', '100%'] - จะไม่จับ '%' อย่างเดียว
# รองรับทศนิยม
re.findall(r'\d*\.?\d+%', my_string) # ['50%', '99.9%', '%']
ใช้ finditer สำหรับข้อมูลเพิ่มเติม
for match in re.finditer(r'\d*\.?\d+%', my_string):
print(f"พบ: {match.group()} ที่ตำแหน่ง {match.start()}-{match.end()}")