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

ดึงเปอร์เซ็นต์ (Percentages) จากสตริงด้วย Regex

แนวคิด

ใช้ 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()}")