Regex

آموزش Regex

Regex

regex مخفف کلمه‌ی Regular Expression است. که اگه بخوایم به فارسی ترجمه کنیم میشه یه چیزی شبیه کلمه بندی منظم یا عبارت با قاعده. به ما در پیدا کردن و مدیریت نوشته‌ها کمک می‌کند. رجکس از یک سری کاراکتر برای جستجو و تغییر در متنها استفاده می‌کنه. مثلا برای شروع اگه یک کلمه یا حرف را بخواهیم جستجو کنیم، همان کلمه را می‌نویسیم.

 

. Dot

از نقطه برای مشخص کردن تمام کارکترها از جمله اسپیس استفاده می‌شود.

[abc]

از براکت برای مشخص کردن مجموعه‌ای از کارکترها استفاده می‌کینم. مثلا می‌خواهیم رجکسی بنویسیم که این کلمه را در داخل جمله پیدا کند.

bing, bang, bong

b[iao]ng

[abc^]

اگه بخواهیم این حروف نباشد از علامت هت استفاده می‌کنیم. مثلا بخواهیم bang و beng نباشند.

bing, bang, bong, beng

b[^ae]ng

[a-z]

اگر بخواهیم بازه‌ای از حروف را مشخص کنیم. مثلا از حرف e تا o را مشخص کنیم. برای اعداد هم بهمین صورت است.

abcdefghijklmnopqrstuvwxyz

[e-o] => efghijklmno

012345678

[3-6]                             =>              3456

یا اگر بخواهیم با یک دستور سه کلمه‌ی bing و sing و king  را در یک جمله پیدا کنیم از این رجکس استفاده می‌کنیم.

[ksb]ing

+*?

برای مشخص کردن تعداد از این کرکتر ها استفاده می‌شود.

مثلا  * ستاره بعد از کارکتری بیاد به این معنی می‌باشد که چه نباشه و چه باشه و اونم به هر تعداد قبوله. وقتی از be*r استفاده می‌کنیم از سه کلمه زیر را انتخاب کرده‌ایم.

br ber beer

وقتی بخواهیم یک کارکتر حداقل یک بار تکرار شده باشد از + استفاده می‌کنیم. مثلا be+r فقط دو کلمه آخر را بر می‌گرداند.

از ? وقتی استفاده می‌کنیم که یک حرف یا باشه یا نباشه و تعداد دیگه مطرح نیست.

 

{n}

از کرلی برکت برای مشخص کردن تعداد استفاده می‌شود. رجکس be{2}r فقط کلمه‌ی beer را بر می‌گرداند.

ber beer beeer beeeer
اگر بخواهیم حداقل 2 بار تکرار شده باشد را مشخص کنیم از یک کاما بعد از عدد استفاده می‌کنیم. رجکس be{2,}r اگر e سه بار هم تکرار شده باشد آنرا بر می‌گرداند. اگر هم دو عدد بگذاریم مانند be{1,3}r یعنی e حداقل یک بار تا حداکثر سه بار تکرار شده باشد.
مثال: برای پیدا کردن چهار عدد که بهم چسبیده باشن در یک جمته از رجکس زیر استفاده می‌کنیم.
Release 10/9/2023
[0-9]{4}                         =>              2023

()

از پرانتز برای تشکیل گروه استفاده می‌شود. مثلا در ریاضی می‌نویسیم (3+5)2 یعنی اول داخل پرانتز انجام شود بعد در دو ضرب شود.

|

از این علامت که همان or در برنامه نویسی هست برای نوشتن شرطهای بیشتر استفاده می‌شود. مثلا اگر شرط اول بر قرار بود یا برو سراق شرط دوم.

 

\

خب اگر بخواهیم همین کرکترهایی که جزو دستورات رجکس هست را مشخص کنیم باید از بک اسلش استفاده می‌کنیم. دقیقا مانند برنامه نویسی. مثلا اگر بخواهیم ستاره ها را در جمله مشخص کنیم از *\ استفاده می‌کنیم.

 

^

معنی اول جمله را می‌دهد. یعنی اگر بخواهیم مشخص کنیم که جمله حتما با عدد شروع شده باشد عبارت زیر را می‌نویسیم.

abc23asd
2abcdef

^[0-9] => 2abcdef

$

معنی آخر عبارت را می‌دهد. اگر بخواهیم که جمله حتما با html تمام شده باشد از عبارت زیر استفاده می‌کنیم.

https://otherdomain.com/html-elementsh

ttps://website.com/html5-features.html

html$                          =>               ttps://website.com/html5-features.html

w\

برای انتخاب حروف و اعداد و آندراسکور _ از این عبارت استفاده می‌شود. اگر W را بزرگ تایپ کنیم برعکس می‌شود و تمام کرکترها بغیر از حروف و اعداد و _ انتخاب می‌شوند.

 

d\

برای انتخاب اعداد استفاده می‌شود. اگر از D بزرگ استفاده بشود همه کرکترها بغیر از اعداد استفاده می‌شوند.

 

s\

برای پیدا کردن اسپیس در جمله استفاده می‌شود. اگر از S بزرگ استفاده شود همه‌ی کرکترها بغیر از اسپیس برگردانده می‌شود.

 

(=?)

نگاه به بعد از شرط ما می اندازد. مثلا می‌خواهیم در جمله‌ای دنبال ساعت بگردیم. می‌دانیم بعد از یک یا چند عدد اگر PM یا AM  باشد، پس آن عدد نشانگر ساعت است.

Date: 4 Aug 3PM
\d+(?=PM|?=AM)          =>             3

(!?)

برعکس دستور بالا عمل می‌کند. یعنی اگر بعدش PM نباشد را بر می‌گرداند و تاریخ را برمی‌گرداند.

 

دیدگاه ها :

من بات نیستم

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *