Python สตริง find() วิธีการพร้อมตัวอย่าง

ความหมายของ Python สตริงค้นหา ()?

Python ค้นหาสตริง () เป็นฟังก์ชันที่มีอยู่ใน Python ไลบรารีเพื่อค้นหาดัชนีของการเกิดขึ้นครั้งแรกของซับสตริงจากสตริงที่กำหนด ฟังก์ชัน find() ของสตริงจะส่งคืน -1 แทนที่จะโยนข้อยกเว้น ถ้าซับสตริงที่ระบุไม่มีอยู่ในสตริงที่กำหนด

ไวยากรณ์ของ Python ค้นหาสตริง ()

ไวยากรณ์พื้นฐานของ Python find() ฟังก์ชันเป็นดังนี้:

string.find(substring,start,end)

พารามิเตอร์สำหรับเมธอด find()

นี่คือพารามิเตอร์สามตัวของฟังก์ชัน String find() ใน Python:

  • สตริงย่อย: สตริงย่อยที่คุณต้องการค้นหาในสตริงที่กำหนด
  • เริ่มต้น: (เป็นทางเลือก) ค่าเริ่มต้นจากตำแหน่งที่จะเริ่มต้นการค้นหาสตริงย่อย โดยค่าเริ่มต้นจะเป็น 0
  • ปลาย: (เป็นทางเลือก) ค่าสิ้นสุดที่การค้นหาสตริงย่อยจะสิ้นสุด ตามค่าเริ่มต้น ค่าคือความยาวของสตริง

ตัวอย่างของเมธอด find() ที่มีค่าเริ่มต้น

พารามิเตอร์ที่ส่งผ่านไปยัง Python find() เมธอดเป็นสตริงย่อย เช่น สตริงที่คุณต้องการค้นหา เริ่มต้น และสิ้นสุด ค่าเริ่มต้นคือ 0 โดยค่าเริ่มต้น และค่าสิ้นสุดคือความยาวของสตริง

ในตัวอย่างนี้ เราจะใช้เมธอด find() ใน Python ด้วยค่าเริ่มต้น

เมธอด find() จะค้นหาสตริงย่อยและระบุตำแหน่งของสตริงย่อยที่เกิดขึ้นครั้งแรก ตอนนี้ หากสตริงย่อยปรากฏหลายครั้งในสตริงที่กำหนด สตริงย่อยก็จะส่งคืนดัชนีหรือตำแหน่งของสตริงแรกให้คุณ

ตัวอย่าง:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials"))

Output:

The position of Tutorials is at: 12

ตัวอย่างของ find() โดยใช้อาร์กิวเมนต์เริ่มต้น

คุณสามารถค้นหาสตริงย่อยในสตริงที่กำหนดและระบุตำแหน่งเริ่มต้นจากตำแหน่งที่การค้นหาจะเริ่มต้น พารามิเตอร์เริ่มต้นสามารถใช้เหมือนกันได้

ตัวอย่างจะระบุตำแหน่งเริ่มต้นเป็น 15 และ find() ใน Python method จะเริ่มค้นหาจากตำแหน่งที่ 15 โดยตำแหน่งสิ้นสุดจะเป็นความยาวของสายอักขระ และจะค้นหาจนถึงจุดสิ้นสุดของสายตั้งแต่ 15 ตำแหน่งเป็นต้นไป

ตัวอย่าง:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 20))

Output:

The position of Tutorials is at 48

ตัวอย่างของ find() โดยใช้อาร์กิวเมนต์เริ่มต้นและสิ้นสุด

โดยใช้พารามิเตอร์เริ่มต้นและสิ้นสุด เราจะพยายามจำกัดการค้นหาแทนที่จะค้นหาสตริงทั้งหมด

ตัวอย่าง:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 5, 30))

Output:

The position of Tutorials is at 12

ตัวอย่างวิธีการ find() เพื่อค้นหาตำแหน่งของสตริงย่อยที่กำหนดในสตริง

เราทราบว่า find() ช่วยให้เราค้นหาดัชนีของสตริงย่อยที่เกิดขึ้นครั้งแรกได้ โดยจะส่งคืน -1 ถ้าสตริงย่อยนั้นไม่มีอยู่ ตัวอย่างด้านล่างจะแสดงดัชนีเมื่อสตริงมีอยู่ และส่งคืน -1 เมื่อเราไม่พบสตริงย่อยที่เรากำลังค้นหา

ตัวอย่าง:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Best site is at:", mystring.find("Best site", 5, 40))
print("The position of Guru99 is at:", mystring.find("Guru99", 20))

Output:

The position of Best site is at: 27
The position of Guru99 is at: -1

Python สตริง rfind()

เค้ก Python ฟังก์ชั่น rfind() คล้ายกับฟังก์ชัน find() โดยมีข้อแตกต่างเพียงอย่างเดียวคือ rfind() ให้ดัชนีสูงสุดสำหรับสตริงย่อยที่กำหนด และ find() ให้ค่าต่ำสุดคือดัชนีแรกสุด ทั้ง rfind() และ find() จะส่งกลับ -1 หากไม่มีสตริงย่อย

ในตัวอย่างด้านล่าง เรามีสตริง “Meet Guru99 Tutorials Site เว็บไซต์ที่ดีที่สุดสำหรับ Python สอน- และจะพยายามค้นหาตำแหน่งของสตริงย่อย Tutorials โดยใช้ find() และ rfind() การเกิดขึ้นของบทช่วยสอนในสตริงเป็นสองครั้ง

นี่คือตัวอย่างที่ใช้ทั้ง find() และ rfind()

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using rfind() : ", mystring.rfind("Tutorials"))

Output:

The position of Tutorials using find() :  12
The position of Tutorials using rfind() :  48

ผลลัพธ์แสดงให้เห็นว่า find() ให้ดัชนีของสตริงย่อย Tutorials แรกสุดที่ได้รับ และ rfind() ให้ดัชนีสุดท้ายของสตริงย่อย Tutorials

Python ดัชนีสตริง ()

เค้ก Python string index() เป็นฟังก์ชันที่จะให้ตำแหน่งของสตริงย่อยที่กำหนดเหมือนกับ find() ข้อแตกต่างระหว่างทั้งสองคือดัชนี () จะส่งข้อยกเว้นหากไม่มีสตริงย่อยในสตริงและ find() จะส่งกลับ -1

นี่คือตัวอย่างการทำงานที่แสดงพฤติกรรมของดัชนี() และ find()

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using index() : ", mystring.index("Tutorials"))

Output:

The position of Tutorials using find() :  12
The position of Tutorials using index() :  12

เราได้รับตำแหน่งเดียวกันสำหรับทั้ง find() และ index() เรามาดูตัวอย่างเมื่อสตริงย่อยที่ระบุไม่มีอยู่ในสตริง

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("test"))
print("The position of Tutorials using index() : ", mystring.index("test"))

Output:

The position of Tutorials using find() :  -1
Traceback (most recent call last):
  File "task1.py", line 3, in <module>
    print("The position of Tutorials using index() : ", mystring.index("test"))
ValueError: substring not found

ในตัวอย่างข้างต้น เรากำลังพยายามค้นหาตำแหน่งของสตริงย่อย “test” สตริงย่อยไม่มีอยู่ในสตริงที่กำหนด และด้วยเหตุนี้เมื่อใช้ find() เราจะได้ตำแหน่งเป็น -1 แต่สำหรับ index() มันจะแสดงข้อผิดพลาดดังที่แสดงไว้ด้านบน

เพื่อค้นหาจำนวนรวมของสตริงย่อย

ในการค้นหาจำนวนครั้งทั้งหมดที่สตริงย่อยเกิดขึ้นในสตริงที่กำหนด เราจะใช้ฟังก์ชัน find() Python- จะวนซ้ำสตริงโดยใช้ for-loop ตั้งแต่ 0 จนถึงจุดสิ้นสุดของสตริง จะใช้พารามิเตอร์ startIndex สำหรับ find()

ตัวแปร startIndex และการนับจะเริ่มต้นเป็น 0 ภายใน for –loop จะตรวจสอบว่ามีสตริงย่อยอยู่ภายในสตริงที่กำหนดโดยใช้ find() และ startIndex เป็น 0 หรือไม่

ค่าที่ส่งคืนจาก find() หากไม่ใช่ -1 จะอัปเดต startIndex เป็นดัชนีที่พบสตริงและเพิ่มค่าการนับด้วย

นี่คือตัวอย่างการทำงาน:

my_string = "test string test, test string testing, test string test string"
startIndex = 0
count = 0
for i in range(len(my_string)):
    k = my_string.find('test', startIndex)
    if(k != -1):
        startIndex = k+1
        count += 1
        k = 0
print("The total count of substring test is: ", count )

Output:

The total count of substring test is:  6

สรุป

  • เค้ก Python string find() วิธีการช่วยในการค้นหาดัชนีของการเกิดขึ้นครั้งแรกของสตริงย่อยในสตริงที่กำหนด มันจะคืนค่า -1 หากไม่มีสตริงย่อย
  • พารามิเตอร์ที่ส่งผ่านไปยัง Python find substring method คือสตริงย่อย เช่น สตริงที่คุณต้องการค้นหา เริ่มต้น และสิ้นสุด ค่าเริ่มต้นคือ 0 โดยค่าเริ่มต้น และค่าสิ้นสุดคือความยาวของสตริง
  • คุณสามารถค้นหาสตริงย่อยในสตริงที่กำหนดและระบุตำแหน่งเริ่มต้นจากตำแหน่งที่การค้นหาจะเริ่มต้น พารามิเตอร์เริ่มต้นสามารถใช้เหมือนกันได้
  • โดยใช้พารามิเตอร์เริ่มต้นและสิ้นสุด เราจะพยายามจำกัดการค้นหาแทนที่จะค้นหาสตริงทั้งหมด
  • เค้ก Python ฟังก์ชัน rfind() คล้ายกับฟังก์ชัน find() โดยมีข้อแตกต่างเพียงอย่างเดียวคือ rfind() ให้ดัชนีสูงสุดสำหรับสตริงย่อยที่กำหนด และ find() ให้ค่าต่ำสุดคือดัชนีแรกสุด ทั้ง rfind() และ find() จะส่งกลับ -1 หากไม่มีสตริงย่อย
  • เค้ก Python string index() เป็นอีกหนึ่งฟังก์ชันที่จะให้ตำแหน่งของสตริงย่อยที่กำหนดเหมือนกับ find() ข้อแตกต่างระหว่างทั้งสองคือดัชนี () จะส่งข้อยกเว้นหากไม่มีสตริงย่อยในสตริงและ find() จะส่งกลับ -1
  • เราสามารถใช้ find() เพื่อค้นหาจำนวนรวมของสตริงย่อยในสตริงที่กำหนด

» เรียนรู้เพิ่มเติมเกี่ยวกับ Python แยกสตริง ()

จดหมายข่าว Guru99 รายวัน

เริ่มต้นวันใหม่ของคุณด้วยข่าวสาร AI ล่าสุดและสำคัญที่สุดที่ส่งมอบทันที