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

Python Regex แยกค่าตัวเลขสูงสุดจากสตริง

วิธีง่ายที่สุดแยกค่าตัวเลขสูงสุดจากสตริงด้วย regex คือ

  • ใช้ regex module แยกตัวเลขทั้งหมดจากสตริง
  • หาค่าสูงสุดจากตัวเลขเหล่านั้น

เช่น สตริงอินพุท

มีคน 121005 คนในเมืองนี้ 1587469 ในเมืองข้างเคียง และ 18775994 ในเมืองไกล

ควรได้ผลลัพธ์

18775994

ใช้ regex "\d+" หาตัวเลขทั้งหมด \d แทน digit และ + หาลำดับ digit ติดกันยาวสุด ใช้ re package

import re
# แยกค่าตัวเลขทั้งหมดจากสตริง
occ = re.findall("\d+", "There are 121005 people in this city, 1587469 in the neighbouring city and 18775994 in a far off city.")
# แปลงตัวเลขจากสตริงเป็น int
num_list = map(int, occ)
# หาและพิมพ์ค่าสูงสุด
print(max(num_list))

ผลลัพธ์

18775994