دوره ویژه مقدماتی پایتون – Telegram
دوره ویژه مقدماتی پایتون
436 subscribers
248 photos
4 videos
250 links
Download Telegram
⁉️تست 174 : جاهای خالی زیر را طوری پر کنید که همه ی 9 ها را با 0 جایگزاری کند.

import ...

num = "07987549836"
pattern = r"9"
num = re. ... (pattern, " ...", ...._
print(num)

1️⃣: re - sub - 0 - str
️|||||||||||||||||||38%(3)
2️⃣: import - sub - 9 - num
️0%(0)
3️⃣: re - sub - 0 - num
️|||||||||||||||||||||||||||||||63%(5)

👥: 8شرکت در نظر سنجی
✍️metacharacters

برای قدرتمند تر کردن Regular expression ها از metachararcter ها استفاده می کنیم.
اولین metacharacterی که به بررسی آن می پردازیم، . (dot) است. در رشته ها به جای dot هر چیزی میتواند قرار بگیرد.

مثال :
import re

pattern = r"gr.y"

if re.match(pattern, "grey"):
print ("match 1")
if re.match(pattern, "gray"):
print("match 2")
if re.match(pattern, "blue"):
print("match 3")

خروجی :
»>
match 1
match 2
»>

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
⁉️تست 175 : چه چیزی با عبارت "..." تطابق دارد؟

1️⃣: هر رشته ای که دارای 3 نقطه باشد
️|||||10%(1)
2️⃣: هر رشته ای با 3 حرف
️|||||||||||||||||||||||||||||||||||||||||||||90%(9)

👥: 10شرکت در نظر سنجی
✍️metacharacter

نشانه های ^ و $ دیگر metacharacter های ما هستند.
اینها ابتدا و انتهای رشته را بررسی می کنند.

مثال :
import re

pattern = r"^gr.y$"

if re.match(pattern, "grey"):
print("match 1")
if re.match(pattern, "gray"):
print("match 2")
if re.match(pattern, "stingray"):
print("match 3")

خروجی :
»>
match 1
match 2
»>

📌الگوی "^gr.y$" یعنی اینکه رشته باید با gr شروع شود و با هر کاراکتری ادامه پیدا کند، البته نه خط جدید، و با حرف y پایان یابد.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
⁉️تست 176 : جای خالی را طوری پر کنید که یک الگو را ایجاد کند که با هر رشته ی 3 حرفی که آخرین حرف آن ! باشد، تطابق داشته باشد.
r" ... $"

1️⃣: .......!
️0%(0)
2️⃣: ..\!
️0%(0)
3️⃣: ..!
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(8)

👥: 8شرکت در نظر سنجی
✍️groups

یک گروه می تواند با قرار دادن پرانتز در اطراف Reglar expression ها ساخته شود. این یعنی اینکه یک گروه می تواند به عنوان ورودی به metacharacter ها داده شود.

مثال :
import re
pattern = r"egg(spam)*"

if re.match(pattern, "egg"):
print("match 1")
if re.match (pattern, "eggspamspamspamegg"):
print("match 2")
if re.match(pattern, "spam"):
print("match 3")

خروجی :
»>
match 1
match 2
»>

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
⁉️تست 177 : عبارت زیر چه چیزی را نشان میدهد؟
([^aeiou][aeiou][^aeiou])+

1️⃣: هیچ چیزی
️0%(0)
2️⃣: تکرار aeiou به تعداد 3 بار
️0%(0)
3️⃣: یک یا بیشتر تکرار از حروف بی صدا، صدا دار و بی صدا
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(7)

👥: 7شرکت در نظر سنجی
✍️groups

برای نشان دادن محتوای group میتوان از تابع group استفاده کرد. میتوانید (group(0 یا ()group را فراخوانی کنید. فراخوانی (group(n در جایی که n بزرگتر از 0 باشد، nمین عضو group را باز می گرداند. متد ()groups همه ی اعضای بعد از 1 را بر میگرداند.

مثال :
import re

pattern = r"a(bc)(de)(f(g)h)i"
match = re.match(pattern, "abcdefghijklmnop")
if match:
print(match.group())
print(match.group(0))
print(match.group(1))
print(match.group(2))
print(match.groups())

خروجی :
»>
abcdefghi
abcdefghi
bc
de
('bc', 'de', 'fgh', 'g')
»>

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
⁉️تست 178 : group(3 در الگوی زیر کدام یک از گزینه های زیر می تواند باشد؟
1(23)(4(56)78)9(0)

1️⃣: 0
️0%(0)
2️⃣: 23
️0%(0)
3️⃣: 56
️||||||||||||||||||||40%(2)
4️⃣: 45678
️||||||||||||||||||||||||||||||60%(3)

👥: 5شرکت در نظر سنجی
✍️groups

انواع مختلفی از group ها وجود دارد که دو نوع کارآمد آن named groups و non-capturing groups هستند.
نوع name groups دارای فرمت زیر هستند:
?P<name>...
که name، نام گروه و ... محتوای آن است. عملکرد این group مانند group های معمولی است با این تفاوت که می توان به آن با استفاده از name هم دسترسی پیدا کرد.
نوع non-capturing groups دارای فرمت زیر هستند :
? : ...
این نوع با متد group قابل دسترس نیست، بنابراین می توانند به یک regular expression موجود اضافه شوند بدون اینکه شماره دهی آن را بشکنند.

مثال :
import re

pattern = r"(?P<first>abc)(?:def)(ghi)"
match = re.match (pattern, "abcdefghi")
if match:
print(match.group("first"))
print(match.groups())

خروجی :
»>
abc
('abc', 'ghi')
»>

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
⁉️ تست 179 : خروجی کد زیر چه چیزی خواهد بود؟
len(match.groups()) of a match of (a)(b(?:c)(d)(?:e))

1️⃣: 3
️||||||||||||||||||||||||||||||||||||||||80%(4)
2️⃣: 4
️0%(0)
3️⃣: 5
️||||||||||20%(1)
4️⃣: 6
️0%(0)

👥: 5شرکت در نظر سنجی
✍️metacharacter

یکی از مهمترین metacharacter ها | است. که به معنی or است که red|blue با الگوی red یا blue تطابق دارد.

مثال :
import re
pattern = r"gr(a|e)y"
match = re.match(pattern, "gray")
if match :
print ("match 1")
match = re.match(pattern, "grey")
if match:
print ("match 2")
match = re.match(pattern, "griy")
if match:
print("match 3")

خروجی :
»>
match 1
match 2
»>

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
⁉️تست 180 : کدام یک از موارد زیر با بقیه یکسان نیست؟

1️⃣: (1|2|3|4|5)
️|||||||||||||||||||||||||||||||||||||||||||86%(6)
2️⃣: [1-6]
️0%(0)
3️⃣: [12345]
️|||||||14%(1)

👥: 7شرکت در نظر سنجی
✍️دنباله های خاص

انواع مختلفی از دنباله های خاص وجود دارند که می توانند در Regular expression ها استفاده شوند. که به این صورت نوشته می شوند که یک \ گزاشته میشود و بعد آن کاراکتر می آید.
یک دنباله بسیار پرکاربرد در دنباله های خاص، \هایی هستند که با یک عدد همراه می شوند، مثل 1\ یا 17\.

مثال :
import re

pattern = r"(.+) \1"

match = re.match(pattern, "wprd word")
if match :
print("match 1")
match = re.match(pattern, "?! ?!")
if match:
print("match 2")
match = re.match(pattern, "abc cde")
if match:
print("match 3")

خروجی :
»>
match 1
match 2
»>

📌در نظر داشته باشید که 1\(+.)" مانند "(+.)(+.)" نیست. چون 1\ به اولین گروه اشاره می کند.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
⁉️تست 181 : عبارت 1\(xyz|abc) با کدام یک از عبارات زیر تطابق دارد؟

1️⃣: "abc" or "xyz" که با همین دنباله ادامه پیدا می کنند
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(7)
2️⃣: "abc" then "xyz"
️0%(0)
3️⃣: "abc" or "xyz" then a "1"
️0%(0)

👥: 7شرکت در نظر سنجی
✍️دنباله های خاص - (قسمت دوم)

انواع دیگری از دنباله های خاص، d\ و s\ و w\ هستند که به ترتیب معادل digit ها، whitespaceها و word characterها هستند. در مدل ASCII برابر (0-9)، (t\n\r\f\v) و (a-zA-Z0-9) هستند.
مدل upper-case برای این دنباله های خاص برابر D\ و S\ و W\ هستند. برای مثال، D\ با هر چیزی که digit نباشد تطابق دارد.

مثال :
import re
pattern = r"(\D +\d)"
match = re.match(pattern, "Hi 999!")
if match:
print("match 1")
match = re.match(pattern, "1, 23, 456!")
if match:
print("match 2")
match = re.match(pattern, " ! $?")
if match:
print("match 3")

خروجی :
»>
match 1
»>

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
⁉️تست 182 : کدام یک از الگوهای زیر با "!456!123" تطابق ندارد؟

1️⃣: (\D + \s?)+
️||||||||||||||||||||||||||||||||||||||||80%(4)
2️⃣: (\d*\W)+
️||||||||||20%(1)
3️⃣: [1-6!]
️0%(0)

👥: 5شرکت در نظر سنجی
✍️دنباله های خاص - (قسمت سوم)

دنباله های خاص دیگری هم که وجود دارند، A\ و Z\ و b\ هستند. دنباله های A\ و Z\ به ترتیب منطبق با ابتدا و انتهای رشته هستند. دنباله ی b\ با رشته های خالی در بین کاراکتر های W\ و w\ ، یا کاراکتر w\ و ابتدا یا انتهای رشته منطبق هستند. در واقع یک محدوده ی بین حروف را نشان می دهد.
دنباله ی B\ بت هر رشته ی خالی ایدر هر جایی منطبق می شود.

مثال :
import re
pattern = r"\b(cat)\b"

match = re.search(pattern, "The cat sat!")
if match :
print("match 1")

match = re.search(pattern, "We s>cat<tered?")
if match :
print("match 2")

match = r.search(pattern, "We scattered.")
if match :
print("match 3")

خروجی :
»>
match 1
match 2
»>

📌عبارت "\b(cat)\b\" در واقع با کلمه ی "cat" تطابق دارد که با کلمات دیگر می تواند احاطه شده باشد.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
⁉️تست 183 : کدام یک از موارد زیر با '!SPAM' تطابق دارد؟

1️⃣: \AS...\b.\Z
️0%(0)
2️⃣: \ASPAM\Z
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(7)
3️⃣: SP\AM!\Z
️0%(0)

👥: 7شرکت در نظر سنجی
✍️خارج کردن ایمیل

برای نشان دادن یک کاربرد از regular expression، بیاید یک برنامه بنویسیم که آدرس ایمیل را از درون رشته ها تشخیص دهد. در نظر بگیرید که یک تکست داریم که شامل یک آدرس ایمیل است:
str = "please contact info@sololearn.com for assistance"

هدف ما این است که ایمیل info@sololearn.com را پیدا کنیم.
یک ایمیل پایه می تواند شامل یک کلمه، نقطه و \ باشد که با یک @ و نام دامنه می آید.
در زیر کد انتباط یک ایمیل پایه را اورده ایم:
pattern = r"([\w\.-]+)@([\w\.-]+(\.[\w\.]+)"

که عبارت +[-.\w\] با یک یا چند کلمه، نقطه یا \ تطابق پیدا می کند.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
⁉️تست 184 : کدام یک از موارد زیر باید با regular expression انجام شود، و با متد های رشته انجام نشود؟

1️⃣: جدا کردن یک رشته
️0%(0)
2️⃣: بررسی کنید که آیا یک کاراکتر مشخص رشته هست یا نه
️0%(0)
3️⃣: بررسی کنید که آیا یک رشته شامل زمان هست یا نه
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(6)

👥: 6شرکت در نظر سنجی