Python ตอนที่ 33 ค้นหาตำแหน่งของข้อความหรืออักขระใน String ด้วยเมธอด rfind()

เมธอด rfind() เป็นเมธอดของสตริง ใช้สำหรับค้นหาข้อความหรืออักขระที่กำหนดในสตริงว่าปรากฏครั้งล่าสุดที่ตำแหน่งใด โดยถ้าเจอจะคืนค่าเป็นตำแหน่งของข้อความหรืออักขระที่ระบุ แต่ถ้าไม่เจอจะคืนค่าเป็น -1

การใช้งานเมธอด rfind()

การใช้งานเมธอด rfind() มีรูปแบบดังนี้

 string.rfind(value, start, end)
  • value คือสตริงที่ต้องการค้นหา (ต้องระบุ)
  • start คือตำแหน่งเริ่มต้นที่ต้องการให้เริ่มค้นหา (ไม่ระบุก็ได้) ค่าตั้งต้นเป็น 0
  • end คือตำแหน่งสุดท้ายที่จะให้ค้นหา (ไม่ระบุก็ได้) ค่าตั้งต้นคือตำแหน่งสุดท้ายของสตริง

ตัวอย่างการใช้งานเมธอด rfind()

การใช้งานเมธอด rfind() โดยไม่ระบุ start และ end

a = "I love Python. I love Python. I love Python."

print(a.rfind('Python')) # 37
  • ค้นหาคำว่า “Python” ในสตริง ซึ่งในสตริงมีคำว่า “Python” ปรากฏอยู่ 3 ครั้ง ผลลัพธ์จะเป็นตำแหน่งที่เจอคำที่กำหนดเป็นครั้งสุดท้าย นั่นคือ 37

การใช้งานเมธอด rfind() โดยระบุ start และ end

a = "I love Python. I love Python. I love Python."

print(a.rfind('Python', 5, 30)) # 22
  • ค้นหาคำว่า “Python” ในสตริง ซึ่งในสตริงมีคำว่า “Python” ปรากฏอยู่ 3 ครั้ง แต่เนื่องจากเราระบุให้ค้นหาจากตำแหน่งที่ 5 ถึงตำแหน่งที่ 30 เท่านั้น ผลลัพธ์จะเป็นตำแหน่งที่เจอคำที่กำหนดเป็นครั้งสุดท้าย (ไม่เกินตำแหน่งที่ 30) นั่นคือ 22

ถ้าไม่เจอคำที่ใช้ค้นหาในสตริง จะคืนค่าเป็ฯ -1

a = "I love Python. I love Python. I love Python."

print(a.rfind('DCRUB', 5, 30)) # -1
  • ค้นหาคำว่า “DCRUB” ในสตริง ซึ่งไม่มีอยู่จริง จึงได้ผลลัพธ์เป็น -1