مثال های کاربردی از regex

  • مدرس: علی بیگدلی
  • تاریخ انتشار: 1402/05/04
  • تعداد بازدید: 174

findall

findall  روشی برای یافتن چندین کاراکتر به عنوان یک واحد است. آنها با قرار دادن کاراکترها در داخل مجموعه ای از براکت ها ایجاد می شوند. به عنوان مثال ، (book) یک گروه واحد است که شامل 'b' ، 'o' ، 'o' ، 'k' ، می باشد.

تکنیک گروه های ضبط به ما امکان می دهد آن قسمت های یک رشته را که با الگوی معمولی مطابقت دارند ، دریابیم.

import re

content = '''<p>The <code>Pattern</code> is a compiled
representation of a regular expression.</p>'''

pattern = re.compile(r'(</?[a-z]*>)')

found = re.findall(pattern, content)

for tag in found:
    print(tag)

مثال کد با گرفتن گروهی از نویسه ها ، همه برچسب های HTML را از رشته ارائه شده چاپ می کند.

found = re.findall(pattern, content)

به منظور یافتن همه برچسب ها ، از روش findall استفاده می کنیم.

<p>
<code>
</code>
</p>

مثال ایمیل پایتون regex

در مثال زیر ، یک الگوی regex برای بررسی آدرس های ایمیل ایجاد می کنیم.

import re

emails = ("luke@gmail.com", "andy@yahoocom", 
    "34234sdfa#2345", "f344@gmail.com")

pattern = re.compile(r'^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,18}$')

for email in emails:

    if re.match(pattern, email):
        print(f'{email} matches')
    else:
        print(f'{email} does not match')

این مثال یک راه حل ممکن را ارائه می دهد.

pattern = re.compile(r'^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,18}$')  

حرف ^ در ابتدا و $ در انتها بیانگر یک تطابق دقیق برای الگوی وارده است.هیچ کاراکتری قبل و بعد از الگو مجاز نیست. ایمیل به پنج قسمت تقسیم شده است. قسمت اول قسمت محلی است. این معمولاً نام یک شرکت ، فرد یا نام مستعار است.[a-zA-Z0-9._-]+ همه نویسه های ممکن را لیست می کند ، ما می توانیم در قسمت محلی استفاده کنیم. که حتی می توانند یک یا چند بار استفاده شوند.

قسمت دوم از کاراکتر واقعی @ تشکیل شده است. قسمت سوم قسمت دامنه است. این معمولاً نام دامنه ارائه دهنده ایمیل مانند Yahoo یا Gmail است. [a-zA-Z0-9 -] + یک کلاس کاراکتر است که تمام کاراکترهایی را می توان در نام دامنه استفاده کرد. مقدار + امکان استفاده از یک یا چند مورد از این نویسه ها را فراهم می کند.

قسمت چهارم شخصیت نقطه است. قبل از آن کاراکتر فرار (\) برای گرفتن یک نقطه واقعی وجود دارد.

قسمت آخر دامنه سطح بالا است: [a-zA-Z.] {2،18}. دامنه های سطح بالا می توانند از 2 تا 18 نویسه داشته باشند ، مانند sk ، net ، info ، سفر ، تمیز کردن ، بیمه مسافرتی. حداکثر طول می تواند 63 نویسه باشد ، اما اکثر دامنه های امروز کوتاه تر از 18 نویسه هستند. یک شخصیت نقطه ای نیز وجود دارد. دلیل این امر این است که برخی از دامنه های سطح بالا دارای دو قسمت هستند. به عنوان مثال co.uk.

luke@gmail.com matches
andy@yahoocom does not match
34234sdfa#2345 does not match
f344@gmail.com matches