تابع match
تابع match مقداری را با این استدلال که یک شئ با تعدادی از کارکتر ها و یا بدون هیچ تشابهی نسبت به regex تعیین شده را باز می گرداند.
نمونه زیر را در نظر بگیرید:
import re
words = ('book', 'bookworm', 'Bible',
'bookish','cookbook', 'bookstore', 'pocketbook')
pattern = re.compile(r'book')
for word in words:
if re.match(pattern, word):
print(f'The {word} matches')
در مثال بالا ما یک تاپل از کلمات را داریم. الگوی ساخته شده به دنبال کلمه book در متن می گردد.که در خط زیر اتفاق می افتد:
pattern = re.compile(r'book')
با استفاده از تابع compile یک الگوی ساده ایجاد می کنیم. regex ایجاد شده یک کلمه با چهار حرف ساده است.
for word in words:
if re.match(pattern, word):
print(f'The {word} matches')
tuple را پیمایش کرده و تابع match را فراخوانی می کنیم. این الگوی را روی کلمات اعمال می کند. اگر در ابتدای یک رشته مطابقت داشته باشد ، تابع match یک شی با مطابقت را برمی گرداند. در صورت عدم تطابق ، None را برمی گرداند. که در نهایت با خروجی زیر مواجه خواهیم شد.
The book matches
The bookworm matches
The bookish matches
The bookstore matches
تابع fullmatch
تابع fullmatch به دنبال تطابق دقیق الگوی وارده می گردد.به مثال زیر توجه نمایید:
import re
words = ('book', 'bookworm', 'Bible',
'bookish','cookbook', 'bookstore', 'pocketbook')
pattern = re.compile(r'book')
for word in words:
if re.fullmatch(pattern, word):
print(f'The {word} matches')
در مثال ، ما از تابع fullmatch برای جستجوی اصطلاح دقیق "book" استفاده می کنیم. که تنها خروجی زیر را در بر خواهد داشت:
The book matches
تابع Search
تابع search به دنبال اولین مکانی می رود که الگوی بیان منظم یک تطابق ایجاد می کند.
import re
words = ('book', 'bookworm', 'Bible',
'bookish','cookbook', 'bookstore', 'pocketbook')
pattern = re.compile(r'book')
for word in words:
if re.search(pattern, word):
print(f'The {word} matches')
در مثال ، ما از تابع Search برای جستجوی اصطلاح "book" استفاده می کنیم. که خروجی زیر را در بر خواهد داشت:
The book matches
The bookworm matches
The bookish matches
The cookbook matches
The bookstore matches
The pocketbook matches
این بار کلمات کتاب آشپزی و کتاب جیبی نیز گنجانده شده است.