Intern
რა განსხვავებაა rematch და research-ს შორის?
sobes.tech AI
პასუხი AI-სგან
re.match და re.search ფუნქციები re მოდულიდან არიან, რომლებიც გამოიყენება რეგულარული გამოთქმების საშუალებით შესაბამისობის ძიებისთვის სტრიქონში.
ძირითადი განსხვავება მათ შორის ისაა, სადაც ზუსტად იწყებენ ძიებას:
re.matchმხოლოდ საწყისში სტრიქონის შესაბამისობას იკვლევს.re.searchსკანირებს მთელ სტრიქონს და აბრუნებს პირველ პოვნილ შესაბამისობას.
თუ შესაბამისობა იპოვეს, ორივე ფუნქცია აბრუნებს შესაბამისობის ობიექტს (match object). წინააღმდეგ შემთხვევაში, აბრუნებს None.
მაგალითი:
import re
ტექსტი = "ფეხბურთი, ტენისი, ბასკეტბოლი"
# ტენისის ძიება დასაწყისში `match`-ით
შედეგი_match = re.match("ტენისი", ტექსტი)
print(f"მოწესრიგი match: {შედეგი_match}") # გამოიტანს None
# ტენისის ძიება ნებისმიერ ნაწილში `search`-ით
შედეგი_search = re.search("ტენისი", ტექსტი)
print(f"მოწესრიგი search: {შედეგი_search}") # გამოიტანს <re.Match object; span=(9, 15), match='ტენისი'>
შედარება:
| მახასიათებელი | re.match(pattern, string) |
re.search(pattern, string) |
|---|---|---|
| ძიების ზონა | მხოლოდ დასაწყისში | მთელ სტრიქონში |
| აბრუნებს | შესაბამისობის ობიექტს ან None |
შესაბამისობის ობიექტს ან None |
| გამოყენება | სტრიქონის პრეფიქსის შემოწმება | ქვესათის ძიება ნიმუშით |
ორივე ფუნქცია მხარს უჭერს flags-ებს, რომლებიც იცვლიან ძიების ქცევას, მაგალითად, re.IGNORECASE.