کداکسپلور | CodeExplore
7.91K subscribers
1.96K photos
314 videos
103 files
1.74K links
با کد اکسپلور یاد بگیر، لذت ببر و بروز باش ⚡️😉

سایت کد‌اکسپلور:
CodeExplore.ir
👨🏻‍💻 ارتباط با ما :
@CodeExploreSup
گروه :
@CodeExplore_Gap
تبلیغات در کد اکسپلور :
@CodeExploreAds
Download Telegram
3️⃣ آموزش ریجکس (regex) (عبارت های با قاعده) ☺️ - قسمت سوم

📢 در پست قبلی با flag های m, i, g آشنا شدیم و همچنین نماد هَت (^) رو یاد گرفتیم که برای مشخص کردن اول خط به کار میره

بریم یه نماد دیگه رو هم یاد بگیرم و اون هم نماد $ (دلار ساین) است که دقیقا برعکس ^ برای آخر جمله استفاده میشه 💘
بریم یه متن بنویسیم و روش یه تست پیاده کنیم:

JavaScript
PostScript
shelllll
ActionScript
PowerShell
AppleScript
Script
Network
hello1
PHP


خب توی متن بالا میخوایم تمامی عبارت هایی رو پیدا کنیم که به Script ختم بشن:

/Script$/img

Script, Script, Script, Script, Script


با دستور بالا 5 تا تطابق داریم ، اما اینجا به یه موضوعی پی میبریم 🗽
اونم اینکه تا فعلا با ریجکس فقط یه اسم ثابت رو جستجو کردیم که با find ساده توی یک زبان برنامه نویسی پیدا میشد ، پس چرا از ریجکس استفاده کردیم؟ اینجاست که باید بگم یه زمانی ما دنبال یه کلمه ثابت هستیم و میخوایم ایندکس اون کلمه رو توی متن پیدا کنیم و ممکنه اون کلمه چنبار در جمله اومده باشه ، برای همین با ریجکس میتونیم ایندکس رو بدست بیارم (و اینکه میخواید با ایندکسش چیکار کنید به خودتون مربوطه ، مثلا اگر بخواید از ایندکس 20 تا ایندکس 40 متن رو فقط replace کنید از این روش استفاده میکنید ، البته ممکنه همین کارو بتونید با چنتا تابع متفاوت هندل کنید) 👨‍💻
⌨️ توی جاوا اسکریپت این مثال رو میبینیم:

let str = ... //همون مثال بالا;
let pattern = /Script$/gm
let arr = [...str.matchAll(pattern)]
console.log(arr);
//(5) [Array(1), Array(1), Array(1), Array...]
// اگه یکی از آرایه هارو باز کنیم همچین چیزی میبینم:
// ["Script", 4, "JavaScript\nPostScrip...]
// که اولین ایندکس، کلمه پیدا شده ، دومین ایندکس ، ایندکس کلمه داخل متن و سومین ایندکس خود متنه


🔞 اینم بدونید که میشه از همه نماد ها باهم توی ریجکس استفاده کرد ، مثلا ریجکس زیر رو در نظر بگیرد:

/^hello$/igm


ریجکس بالا فقط عبارت هایی رو پیدا میکنه که اول جمله با hello شروع بشه و با hello هم تموم بشه 😐

حالا برسیم سر یه موضوع دیگه ، و یکمی جدی تر وارد دنیای قشنگ و قدرتمند ریجکس بشیم 🎇

مثال اول رو یادتونه که دنبال عبارت هایی میگشتیم که به Script ختم بشن؟ اونجا فهمیدیم که فقط خود Script رو برای ما برمگیردونه ، ولی اگه ما بخوایم کلماتی رو پیدا کنیم که به Script ختم میشه (مثل خود کلمه AppleScript) باید چیکار کنیم؟ 🤔
قبل از اینکه مثال بالا رو حل کنیم نیازه که چنتا چیز دیگه رو تو ریجکس یاد بگیرید 🐱
من مثال اول رو تغییر نمیدم و با همون پیش میریم 🐱

/shel/gmi

shel, shel



ریجکس بالا که خیلی ساده میاد و کلمه shell رو پیدا میکنه و اصلا هم کاری نداره کجای متنه ، کوچیکو بزرگم براش فرقی نداره😏

برای اینکه به محدودیت تلگرام نخوریم 🤮 ادامه آموزش رو تو پست بعدی ادامه میدیم 🤗


#regex #regular_expression
#regex_3
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥153🔥2
⬆️ ادامه آموزش رو با یه چیز مهم شروع میکنم، اول بزارید متن نمونه رو یکبار دیگه بنوسیم:

JavaScript
PostScript
shelllll
ActionScript
PowerShell
AppleScript
Script
Network
hello1
PHP


🥺 ریجکس زیر رو در نظر بگیرید :

/shel{2}/gmi

shell, shell


اینجا یه نماد جدید میبیند: {2} ، که خیلی مهمه
هر عددی که بین آکولاد بزارید ، تعداد رو مشخص میکنه ، یعنی توی ریجکس بالا دارید میگید دنبال عبارتی باش که اولش she داشته باشه و حرف l دقیقا دوبار تکرار بشه ، و چون توی متن اصلی PowerShell و shelllll دوتا ll پشت هم دارن ، پس این تطابق رو پیدا میکنه و دوتا shell برمیگردونه.

❗️ توجه داشته باشید به ریجکس زیر:

/ab{2}c/img


ریجکس بالا دنبال عبارت هایی میگرده که اولشون a ، آخرشون c و بینشون دقیقا 2 تا b باشه!

/shel*/img

shell, shelllll


😌 نماد * یعنی 0 تا n تعداد ، حالا یعنی چی؟ یعنی ریجکس بالا دنبال عبارتی میگرده که اولش she باشه و l در اون 0 یا اِن بار تکرار شده باشه ، پس از اینجاست که عبارتی که ما دنبالش میگردیم از حالت ثابت خارج میشه (چون ایندفعه خودمونم نمیدونیم l چنبار تکرار میشه )
پس با این وجود ریجکس بالا از متن ما دوتا کلمه shell و shelllll رو پیدا میکنه (دیگه چیزیو پیدا نکرد که مشابه هم باشه 😎) ، کم کم داره جالب میشه 😠

❗️ توجه داشته باشید به ریجکس زیر:

/ab*c/img


ریجکس بالا دنبال عبارت هایی میگرده که اولشون a ، آخرشون c و بینشون کارکتر b به تعداد 0 یا اِن بار باشه !

⛔️ بیشتر از این توضیح نمیدم و ازتون میخوام تا پست بعدی خودتون یکمی سرچ کنید و ببینید میتونید کلماتی رو پیدا کنید که به Script ختم میشن یا نه (24 ساعت فرصت دارید و جدی برید دنبالش وگرنه هوش مصنوعی تو یه خط میتونه بگه)

منم توی پست فردا ادامه میدم 🤝
روز خوبی داشته باشید 🔋

بهتون تمرین میگم که توی کامنت برام جوابشو بنویسید (با هوش خودتون و چیزایی که از اینجا یاد گرفتید (کسایی که از قبل بلدن لطفا پاسخگو نباشن 🫠))

⚫️ متن زیر رو در نظر بگیرید و برام ریجکسی رو بنویسید که بتونه همه کلمات داخل متن رو استخراج کنه :
br ber beer



#regex #regular_expression
#regex_3
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
12❤‍🔥4🔥3