چگونه با استفاده از رجکس در زمان خود صرفه جویی کنیم؟
رجکس همیشه برای ما وبمسترها یک ابزار جذاب و در عین حال کمی ترسناک به نظر میرسد! اگر بخواهم ساده بگم، رجکس مثل یک زبان کوچیک که باهاش میتوانید الگوهایی برای پیدا کردن یا جایگزین کردن متنها تعریف کنید. طبیعتاً وقتی بخواهید تو ابزارهایی مثل گوگل آنالیتیکس، سرچ کنسول، یا حتی کدهای خودتون، دنبال دادههای خاصی بگردید، رجکس میتواند مثل یک چوب جادویی برای شما عمل کند.
حالا ممکنه اولش کمی پیچیده به نظر برسد، اما امروز قصد داریم یکبار برای همیشه به ساده ترین شکل ممکن رجکس به شما یاد بدهیم، شک نکنید ریجکس همون چیزی میشود که کارهاتون رو سادهتر، سریعتر و حرفهایتر میکند. پس با ما در ویلایز همراه باشید تا ببینیم اصلاً رجکس چی هست و چطور باید ازش استفاده کرد!
رجکس چیست؟
خب اجازه بدهید با پاسخ به این سوال مهم این مقاله رو شروع کنیم. رجکس یا Regular Expression، یک ابزار بسیار کاربردی برای پیدا کردن و تطبیق الگوهای متنی است. اگر بخواهید در متنهای طولانی دنبال یک عبارت خاص بگردید یا الگوهایی مثل ایمیل، شماره تلفن یا حتی فرمت خاصی از تاریخ را پیدا کنید، رجکس مثل یک نقشه راه عمل میکند. طبیعتاً این ابزار بیشتر به درد افرادی میخورد که با دادهها، کدنویسی یا حتی تحلیلهای دقیق سروکار دارند.
پس فهمیدیم که رجکس یک نوع متن خاص است که با آن میتوانید الگوهای جستجو بسازید. به زبان ساده، رجکس به شما این امکان را میدهد که دادههای موردنظر خود را پیدا کنید، محدود کنید یا حتی استخراج کنید. مثلاً فرض کنید میخواهید در یک متن، همه کلماتی که با “ب” شروع میشوند را پیدا کنید. یک الگوی ساده رجکس میتواند چیزی شبیه به این باشد:
\bب\w*
این الگو به شما میگوید “هر کلمهای که با ب شروع شده را پیدا کن.” اینطوری دیگر لازم نیست دستی کل متن را خط به خط بگردید! به این ترتیب، رجکس تمام کلماتی که با “ب” شروع میشوند را پیدا میکند، مثل “بهروز”، “بزرگ”، یا “برنامه”. یا بیایید یه مثال سخت تر بزنیم… فرض کنید یک فایل متنی خیلی حجیم دارید و میخواهید فقط ایمیلهای موجود در آن را پیدا کنید. به جای اینکه دستی همهجا بگردید، با یک الگوی رجکس مثل
\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b
میتوانید تمام ایمیلها را در یک چشم به هم زدن پیدا کنید. طبیعتاً وقتی با دادههای بزرگ سروکار دارید، این ابزار مثل یک ناجی عمل میکند! شاید این مثال کمی برای شروع برای شما سنگین باشه ولی میخواستم قدرت رجکس بهتر درک کنید.
تاریخچه پیدایش رجکس
رجکس (Regex) برای اولین بار در دهه 1950 توسط استیون کلین، دانشمند علوم کامپیوتر، معرفی شد. او این مفهوم را به عنوان بخشی از تحقیقاتش درباره مدلهای ریاضی زبانها توسعه داد. ایده اصلی او از نظریه اتوماتا و زبانهای رسمی الهام گرفته شده بود.
بعدها، در دهه 1960، این ابزار وارد دنیای برنامهنویسی شد و در سیستمعامل UNIX برای جستجو و پردازش متون استفاده گردید. با گذر زمان، رجکس در ابزارهای مختلفی مثل Perl، Python، JavaScript و حتی نرمافزارهایی مثل Excel و Notepad++ جایگاه خود را پیدا کرد و به یکی از قدرتمندترین ابزارها برای مدیریت متن تبدیل شد.
چرا از رجکس استفاده میکنیم؟
خب، پاسخ به این سوال خیلی ساده است: برای جستجو، اصلاح و پردازش سریع و دقیق متون! در واقع، رجکس به ما این امکان را میدهد که بتوانیم به راحتی الگوهای خاصی از دادهها را پیدا کرده، آنها را فیلتر کنیم یا حتی تغییر بدهیم.
آموزش رجکس
حالا که با مفهوم رجکس و کاربرد آن آشنا شدید، وقتشه که وارد دنیای عملی آن بشیم! در این بخش، قصد داریم با اصول اولیه و برخی از مهمترین کاراکترهای رجکس آشنا بشیم و یاد بگیریم چطور میتوانیم از این ابزار قدرتمند برای جستجو و پردازش متون استفاده کنیم تا کارهای مختلف مثل فیلترکردن اطلاعات در سرچ کنسول، گوگل آنالیتیکس و اکسل را راحتتر انجام بدیم.
ساختار و قواعد ابتدایی رجکس
در رجکس، الگوها از ترکیب کاراکترها ساخته میشوند که هر کدام معنای خاصی دارند. برای شروع، باید ابتدا کارکترها رو بشناسید:
نشانه | توضیح | مثال | نتیجه |
---|---|---|---|
حروف و اعداد | هر حرف یا عددی که بنویسید، دقیقاً همان را جستجو میکند. | a | فقط “a” را پیدا میکند. |
. | نقطه: نمایانگر هر کاراکتری به جز خط جدید است. | a.b | میتواند “acb” یا “a1b” را پیدا کند. |
^ | شروع یک خط است. | ^abc | یعنی “abc” باید در ابتدای خط باشد. |
$ | پایان یک خط است. | abc$ | یعنی “abc” باید در انتهای خط باشد. |
\b | مرز کلمه است. | \babc\b | فقط کلماتی که دقیقاً “abc” هستند را پیدا میکند. |
m.n | جایگزین هر کاراکتری میتواند باشد. | man, men, min, m-n | میتواند هرکدام از اینها را پیدا کند. |
[text] | هر کاراکتری که در آن باشد را بررسی میکند. | c[aie]t | cat, cet, cit |
* | کاراکتر یا پترن مورد نظر 0 بار یا هر تعدادی تکرار شده باشد. | Fo*d | fd, fod, food, foood,… |
+ | کاراکتر یا پترن مورد نظر 1 بار یا بیشتر تکرار شده باشد. | Fo+d | fod, food, foood,… |
| | برای بررسی همزمان دو پترن یا عبارت (یا). | Book|hat | میتواند “I have book” یا “I wear hat” را پیدا کند. |
\d | شامل یک عدد بین 0 تا 9 باشد (انگلیسی). | \d\d day | 12 day, 56 day, 09 day,… |
\D | شامل هر کاراکتری غیر از اعداد باشد. | \D\D123 | Bo123, a-123 |
\s | فاصله بین کلمات (space) باشد. | f\s2\s3 | F 2 3 |
\S | هر کاراکتری بهجز فاصله باشد. | f\S2\S3 | FX293 |
a{3,6} | کاراکتر یا عبارت مورد نظر 3 تا 6 بار تکرار شده باشد. | A{1,3} – A{3} | A, AA, AAA – AAA |
خب بیایید یک مثال ساده و کاربردی دیگه از ابزار رجکس بزنیم. فرض کنید یک فروشگاه آنلاین داریم و میخواهیم تحلیل دقیقی روی کلمات “خرید” و “فروش” در صفحات مختلف سایت انجام بدیم. در این شرایط، ممکنه بخواهیم گزارشی دریافت کنیم که شامل تمام عباراتی باشه که با یکی از این دو کلمه آغاز میشوند.
برای این کار، از علامت ^ استفاده میکنیم تا عباراتی رو فیلتر کنیم که با یک کلمه خاص شروع میکنند. همچنین، با استفاده از [ ] میتوانیم چند گزینه مختلف رو بررسی کنیم. به این ترتیب، اگر بخواهیم همه عباراتی که شامل کلمات “خرید” یا “فروش” هستند رو فیلتر کنیم، کافیست در فیلتر سرچ کنسول از الگوی ^[فروش|خرید]
استفاده کنیم. اینطوری به راحتی میتونیم تمام عبارات مرتبط با این دو کلمه رو شناسایی کنیم.
آموزش استفاده از Regex در سرچ کنسول گوگل
برای استفاده از Regex در سرچ کنسول گوگل، کافی است در بخش Performance (عملکرد) به قسمت فیلترها بروید. در اینجا، میتوانید از عبارات رجکس برای فیلتر کردن دقیقتر دادهها استفاده کنید و گزارشهای سفارشیتری دریافت کنید.
- شروع با فیلترها: ابتدا به بخش Search Console بروید و وارد گزارش Performance شوید. سپس روی + New کلیک کنید تا فیلتر جدیدی اضافه کنید. از گزینههای فیلتر، Query را انتخاب کنید.
- فعال کردن Regex: در بخش فیلتر Query، به جای وارد کردن کلمه یا عبارت ساده، گزینه Regex را فعال کنید. در این صورت میتوانید از عبارات رجکس برای جستجو استفاده کنید.
دستورات اصلی و پرکاربرد regex در سرچ کنسول
خب الان شما تا حدودی با رجکس و دستوراتش آشنا شدید، در ادامه چندتا از پرکاربردترین دستورات رجکس در سرچ کنسول به شما معرفی میکنیم.
استخراج کلمات کلیدی لانگ تیل (lsi)
عبارات لانگ تیل که برای استراتژیهای لینکسازی و سئو خیلی مفید هستند را میتوانید با فیلتر رجکس گوگل سرچ کنسول به راحتی پیدا کنید.
(.*\s){4,}
این دستور همه عباراتی که 4 کلمه یا بیشتر دارند رو فیلتر میکند.
پیداکردن کلمات کلیدی خاص
فرض کنید یک وبسایت فروش لوازم آرایشی داریم و میخواهیم لیستی از تمام نتایجی که به کلمه «آرایش» ختم میشوند مشاهده کنیم. برای این کار، کافی است از عبارت آرایش$ استفاده کنیم تا نتایج مربوطه به صورت مرتبشده نمایش داده شوند.
در مثال دیگری، فرض کنید کسبوکار ما مرتبط با آموزش زبان انگلیسی است. با استفاده از دستور ^زبان انگلیسی میتوانیم گزارشی دریافت کنیم که تمام عباراتی که با کلمه «زبان انگلیسی» شروع میشوند را نشان دهد. این روش به شما این امکان را میدهد تا دقیقا ببینید کاربران چگونه در جستجوی مطالب مرتبط با زبان انگلیسی وارد سایت شما شدهاند.
شما هم میتوانید با جایگزین کردن کلمات دلخواه خود، گزارشی مشابه دریافت کنید. فقط دقت کنید که گاهی سرچ کنسول ممکن است قادر به درک برخی از این عبارات نباشد، بنابراین بهتر است به جای کپیکردن کاراکترهای فیلتر رجکس، آنها را دستی تایپ کنید.
چالشهای رایج و رفع اشکال در رجکس
چالشهای رایج در استفاده از رجکس معمولاً به پیچیدگی ساختارهای مختلف مربوط میشود. یکی از بزرگترین مشکلات این که گاهی اوقات عبارات پیچیده باعث میشوند نتایج اشتباه نمایش داده بشه. مثلاً ممکنه یک الگو به جای پیدا کردن چیزی که میخواهیم، عبارات غیر مرتبط رو هم شامل کنه. این موضوع بیشتر وقتی اتفاق میافتد که بهطور نادرست از کلمات خاص یا گروهبندیها استفاده میکنیم.
برای رفع این اشکالات، بهتره که از سادهترین و دقیقترین الگوها استفاده کنیم و مطمئن بشیم که از نشانهها به درستی استفاده میکنیم. همچنین با تستهای مکرر میتونیم مطمئن بشیم که الگویی که نوشتیم دقیقاً همون چیزی رو که میخواهیم پیدا میکند. البته گاهی اوقات استفاده از ابزارهای آنلاین رجکس میتواند به رفع اشکال و تست بهتر کمک کند. در ادامه سه ابزار آنلاین را به شما معرفی میکنیم.
ابزارهای آنلاین رجکس
امروزه پیدا کردن ابزار آنلاین برای انجام کارهای مختلف به امری بسیار رایج تبدیل شده است و بسیاری از توسعهدهندگان نرمافزار ترجیح میدهند به جای ارائه بستههای نصبی، خدمات خود را بهصورت آنلاین در دسترس کاربران قرار دهند. توسعهدهندگان رجکس نیز از این روند جا نماندهاند و چندین ابزار آنلاین مفید و جذاب برای استفاده از این تکنولوژی در دسترس کاربران قرار دادهاند.
در این مقاله، بهترین ابزارهای آنلاین برای کار با سینتکس رجکس را معرفی کردهایم تا شما بتوانید به راحتی از آنها بهرهبرداری کنید. این ابزارها به شما کمک میکنند تا درک بهتری از دستورات رجکس پیدا کنید و کار با آنها را سادهتر کنید.
regex101.com: بهترین ابزار برای تمرین و یادگیری اگر به دنبال ابزاری برای تمرین و یادگیری رجکس هستید، سایت regex101.com یکی از بهترین گزینهها است. این سایت ویژگیهای کاربردی زیادی دارد که باعث میشود تجربه کار با آن بسیار راحت و جذاب باشد. از جمله ویژگیهای برجسته آن میتوان به ویرایشگر متنی با فونت مناسب و هایلایت سینتکس رجکس اشاره کرد. همچنین، بخش Explanation در این سایت به شما کمک میکند تا عملکرد دقیق دستورات رجکس را درک کنید. به علاوه، پنجره Match Information اطلاعات دقیقتری از انطباق دستورات با رشتههای متنی نمایش میدهد و بخش Quick Reference امکان جستجو سریع در میان دستورات رجکس را فراهم میآورد.
debuggex.com: بهترین سایت برای درک شماتیک رجکس سایت debuggex.com یکی از ابزارهای جالب و جذاب برای آشنایی با اکوسیستم رجکس است. این سایت قادر است دستورات رجکس را به شماتیکهای تصویری تبدیل کند که درک عملکرد آنها را برای کاربران سادهتر میکند. علاوه بر این، شما میتوانید نتایج کدهای رجکس خود را در کنار این شماتیکها مشاهده کنید. سایت debuggex امکان “Trace کردن” دستورات رجکس را نیز فراهم میآورد که به شما کمک میکند درک بهتری از نحوه عملکرد کدهای خود داشته باشید.
regexpal.com: بهترین سایت برای مشاهده نمونه کدهای دیگران اگر علاقهمند به مشاهده و اشتراکگذاری کدهای رجکس با دیگران هستید، سایت regexpal.com محیطی مناسب برای این کار است. این سایت به شما این امکان را میدهد تا نمونه کدهای مختلف رجکس را مشاهده و حتی کدهای خود را با دیگران به اشتراک بگذارید. طراحی انجمن مانند این سایت باعث شده که به یکی از منابع معتبر برای یافتن کدهای رجکس تبدیل شود و کاربران بتوانند به راحتی کدهای مورد نظر خود را پیدا کنند یا پیشنهادات بهبود برای کدهای دیگران ارائه دهند.
این ابزارهای آنلاین، با امکانات و ویژگیهای خود، میتوانند به شما در یادگیری و استفاده از رجکس کمک کنند و تجربهای متفاوت از کار با این تکنولوژی به شما ارائه دهند.
جمع بندی دستورات Regex
رجکس (Regular Expressions) ابزاری قدرتمند برای جستوجو و پردازش الگوهای متنی است که به شما این امکان را میدهد تا با سرعت و دقت بالا در میان دادهها جستوجو کنید، آنها را فیلتر کنید یا حتی تغییر دهید. این تکنولوژی در زمینههای مختلفی مانند سئو، پردازش زبانهای برنامهنویسی و تحلیل دادهها کاربرد دارد و به خصوص در ابزارهایی مثل گوگل سرچ کنسول، به کاربر این امکان را میدهد که الگوهای خاصی را برای فیلتر کردن نتایج جستوجو اعمال کنند. از کاربردهای رایج رجکس میتوان به جستوجوی کلمات خاص، شناسایی عبارات طولانی و فیلتر کردن دادههای پیچیده اشاره کرد.
راستی شما از قابلیتهای Regex در سرچ کنسول استفاده میکنید؟ کدام یک از الگوهای Regex برای شما مفیدتر بودهاند؟ در پایان اگر سوالی درباره فیلترهای Regex یا نحوه کارکرد آن دارید، میتوانید در بخش نظرات همین مقاله مطرح کنید. شک نکنید که تیم ما در وبلایز با دقت و سرعت به تمامی سوالات شما پاسخ خواهند داد.