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

ความแตกต่างระหว่างเมธอด re.search() และ re.findall() ในนิพจน์ทั่วไปของ Python คืออะไร


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

ตัวอย่าง

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

ผลลัพธ์

Tutorials

คุณจะเห็นได้ว่าเมธอด search() สามารถค้นหารูปแบบจากตำแหน่งใดก็ได้ของสตริง

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

ตัวอย่าง

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

ผลลัพธ์

TP