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

อะไรคือความแตกต่างระหว่างเมธอด re.match(), re.search() และ re.findall() ใน Python


re.match(), re.search() และ re.findall() เป็นวิธีการของโมดูล Python re.

เมธอด re.match()

เมธอด re.match() จะค้นหาการจับคู่หากเกิดขึ้นที่จุดเริ่มต้นของสตริง ตัวอย่างเช่น การเรียก match() บนสตริง 'TP Tutorials Point TP' และมองหารูปแบบ 'TP' จะตรงกัน

ตัวอย่าง

import re
result = re.match(r'TP', 'TP Tutorials Point TP')
print result.group(0)

ผลลัพธ์

TP

วิธี re.search()

เมธอด re.search() คล้ายกับ re.match() แต่ไม่จำกัดให้เราค้นหารายการที่ตรงกันที่จุดเริ่มต้นของสตริงเท่านั้น

ตัวอย่าง

import re
result = re.search(r'Tutorials', 'TP Tutorials Point TP')
print result.group(0)

ผลลัพธ์

Tutorials

วิธีการ re.findall()

re.findall() ช่วยให้ได้รายการรูปแบบที่ตรงกันทั้งหมด มันค้นหาจากจุดเริ่มต้นหรือจุดสิ้นสุดของสตริงที่กำหนด ถ้าเราใช้วิธี findall เพื่อค้นหารูปแบบในสตริงที่กำหนด มันจะคืนค่ารูปแบบที่เกิดขึ้นทั้งหมด ขณะค้นหารูปแบบ ขอแนะนำให้ใช้ re.findall() เสมอ โดยจะทำงานเหมือน re.search() และ re.match() ทั้งคู่

ตัวอย่าง

import re
result = re.search(r'TP', 'TP Tutorials Point TP')
print result.group()

ผลลัพธ์

TP