کاربردهای رجکس Regex چیست
رجکس Regex چیست و چه کاربردی دارد؟ این سوال شاید در نگاه اول ساده به نظر ساده بیاید، ولی پاسخ آن یکی از قدرتمندترین ابزارهای دنیای دیجیتال را به شما معرفی میکند. این ابزار هوشمند و حرفهای میتواند در چند ثانیه کاری انجام دهد که انجام دادن دستی آن شاید ساعتها یا حتی روزها طول بکشد. تصور کنید در حال کار با ایمیلها، لاگهای نرمافزاری، یا حتی گزارشهای وبسایت هستید، اگر قصد داشته باشید الگوهای تکراری مثل شماره تلفن ها یا آدرس ایمیلها را پیدا کنید احتمالا ساعت ها زمان می برد. اینجاست که رجکس Regex به کمک شما می آید. رجکس یک زبان الگویی قدرتمند است که برای پیدا کردن این الگوهای تکراری به شما کمک می کند.
خیلیها فکر میکنند این ابزار فقط در برنامه نویسی کاربرد دارد ولی شما می توانید از رجکس در ابزارهای روزمره مثل ویرایشگر متن یا پنل های مدیریتی مثل وردپرس هم استفاده کنید.
برای اینکه در صفحه اول گوگل و بین رقبا خودنمایی کنید باید هم طراحی سایت قوی داشته باشید هم یک استراتژی سئو قوی و کاربردی. برای دریافت اطلاعات بیشتر درباره شرایط و هزینه سئو ماهانه یا سالانه با وب نگاران پارسه با کارشناسان ما تماس بگیرید. 02166928787 – 09123790588

رجکس Regex چیست؟
رجکس Regex، که مخفف Regular Expression است به عنوان یک الگوی متنی برای توصیف و تطبیق الگوهای خاص در رشتههای متنی مورد استفاده قرار میگیرد. به عبارتی Regex مثل یک فیلتر هوشمند عمل میکند و میتواند به شما بگوید که این متن شامل چه چیزهایی میشود یا این بخش از متن با الگوی مورد نظر مطابقت دارد یا نه. مثلا اگر می خواهید تمام شماره تلفنها را از یک لیست طولانی دربیاورید میتوانید از رجکس Regex استفاده کنید. چطوری؟ مثلا یک الگو مشخص میکنید و از ان میخواهید چند رقم پشت سر هم را شناسایی و استخراج کند.
شاید همه چیز زیادی محاسباتی و ریاضی به نظر برسد ولی رجکس یک ابزار کاملا عملی و انعطاف پذیر است که در این زبان های برنامه نویسی مثل جاوا اسکریپت، پایتون یا حتی ابزارهایی که خط فرمان دارند استفاده می شود. شما با رجکس می توانید کلمات و عبارت های ساده یا پیچیده را جستجو کنید.
کاربردهای رجکس Regex چیست
از جمله کاربردهای مهم رجکس می توان به موارد زیر اشاره کرد:
- رجکس Regex ورودی ها را برای شما اعتبارسنجی میکند، مثل بررسی صحت ایمیل، شماره تلفن، کد ملی، فرمت تاریخ، رمز عبور قوی و غیره.
- به کمک رجکس میتوانید در ویرایشگرهای متنی مختلف الگوهای خاص را پیدا و جایگزین کنید.
- رجکس Regex اطلاعات مورد نیاز مثل شمارهها، لینکها، ایمیلها و تگهای HTML، قیمتها یا هر الگوی تکراری دیگری را از متنهای بزرگ و طولانی بیرون میکشد.
- حذف یا اصلاح کاراکترهای ناخواسته، فاصلههای اضافی، خطوط خالی، یا تبدیل فرمت دادهها نیز از دیگر کاربردهای این ابزار است.
- این ابزار می تواند لاگ ها را برای شما تحلیل کند. منظور از تحلیل لاگ پیدا کردن خطاها، IPهای خاص، درخواستهای مشکوک یا کدهای وضعیت HTTP در فایلهای لاگ سرور است.
- حذف استاپوردها، استخراج هشتگها، منشنها، ایموجیها یا توکنایز کردن متن هم از دیگر کاربردهای رجکس به شمار می رود.

اجزای رجکس Regex چیست؟
رجکس Regex از عناصر پایهای ساخته شده که هر کدام نقش خاصی در ساخت الگوهای مختلف دارند. این اجزا به سه دسته اصلی تقسیم میشوند:
- کاراکترهای پایه
- کوانتایفرها (تکرارها)
- متاکاراکترها
هر کدام از اینها مانند قطعات پازل عمل میکنند و وقتی با هم ترکیب میشوند الگوهای پیچیدهتر درست میکنند. در ادامه این اجزا را دقیقتر بررسی میکنیم:
کاراکترهای پایه در رجکس Regex
کاراکترهای پایه اصل و ستون فقرات رجکس هستند. حرف، نمادهای معمولی و اعداد کاراکترهای پایه هستند. مثلا اگر الگوی مد نظر شما abc باشد به سادگی abc را در متن یا رشته برای شما پیدا می کند. ولی برای انعطاف بیشتر از مجموعه کاراکتر استفاده میکنند. برای این کار گروهی از کاراکتر ها را داخل [] قرار میدهند. مثلا [a-z] یعنی تمام حروف بین a تا z با اندازه کوچک را پیدا میکند.
این اجزا ساده به نظر می رسند ولی وقتی با هم ترکیب می شوند می توانند الگوهای پیچیده را هم پیاده سازی کنند. مثلا فرض کنید می خواهید کلماتی که با حروف خاص شروع می شوند را پیدا کنید استفاده از گروه کاراکتری می تواند هزاران گزینه را در کسری از ثانیه برای شما پوشش دهد و پیدا کند. بدون کاراکترهای پایه رجکس محدود می شود و نمی تواند به طور گسترده در متن های بزرگ جستجو کند.

کوانتایفرهای رجکس Regex
کوانتایفرها عناصری هستند که تکرار کاراکترها یا الگوها را کنترل میکنند. آنها به الگو میگویند که یک کاراکتر خاص “چند بار” باید ظاهر شود. برای نمونه، الگوی a+ هر جایی که “a” یک بار یا بیشتر تکرار شده را پیدا میکند، مانند “aa” یا “aaa”.
این اجزا باعث می شوند جستجوی رجکس کمی پیچیدهتر شود. اگر این کوانتایفرها نباشد باید برای هر الگو کد جا نوشته شود. مثلا اگر سه تا a را میخواهید پیدا کنید باید یک الگو برای aaa تعریف کنید. و این یک کار بیهوده است و زمان زیادی هم می برد. در جدول زیر می توانید کوانتایفرهای مختلف را ببینید:
| کوانتایفر | نام فارسی | معنی دقیق | مثال الگو | متن نمونه | چه چیزی مَچ میشود؟ |
| * | ستاره | صفر یا بیشتر بار | a* | aaaa, baaa, xyz | “”, “a”, “aa”, “aaa”, “aaaa” (حتی خالی) |
| + | بهعلاوه | یک یا بیشتر بار | a+ | aaaa, baaa, xyz | “a”, “aa”, “aaa”, “aaaa” (حداقل یک a لازم است) |
| ? | علامت سؤال | صفر یا دقیقاً یک بار | a? | aaaa, ba, xyz | “”, “a” (یا هیچی یا فقط یک a) |
| {n} | دقیقاً n بار | دقیقاً n بار تکرار | a{3} | aa, aaa, aaaa | فقط “aaa” |
| {n,} | حداقل n بار | حداقل n بار (بدون سقف) | a{3,} | aa, aaa, aaaaa | “aaa”, “aaaa”, “aaaaa”, … |
| {n,m} | بین n تا m بار | حداقل n و حداکثر m بار | a{2,4} | a, aa, aaa, aaaa, aaaaa | “aa”, “aaa”, “aaaa” |
| *? | ستاره تنبل (Lazy) | صفر یا بیشتر، اما کمترین مقدار ممکن | a*? | aaaaa علیه “a*?” | “” (بهجای تمام aها، کمترین را میگیرد) |
| +? | بهعلاوه تنبل | یک یا بیشتر، اما کمترین مقدار ممکن | a+? aaaaa علیه “a+?” | فقط یک “a” | |
| ?? | علامت سؤال تنبل | صفر یا یک، اما ترجیحاً صفر | a?? aaaaa علیه “a??” | “” (ترجیح میدهد هیچی نگیرد) | |
| {n,m}? | تنبل برای بازه | بین n تا m، اما کمترین مقدار ممکن | a{2,4}? aaaaa علیه “a{2,4}?” | فقط “aa” (کمترین مقدار ممکن) |
متاکاراکترها در رجکس Regex
متاکاراکترها نمادهای خاصی هستند که کمک میکنند الگوهای کوتاهتر و قویتری بسازید. مثلا \w تمام کاراکترهای کلمهای را پیدا میکند ولی \s فضاهای خالی را به شما نشان میدهد. در جدول زیر میتوانید انواع متاکاراکترها و نحوه کاربرد آنها را ببینید:
| متاکاراکتر | نام فارسی | معنی دقیق | مثال الگو | متن نمونه | چه چیزی پیدا میشود؟ | کاربرد رایج |
| . | نقطه | هر کاراکتر تکی بهجز خط جدید (\n) | a.c | abc, a1c, a#c, a\nc | “abc”, “a1c”, “a#c” (نه وقتی خط جدید باشد) | پیدا کردن هر چیزی بین دو کاراکتر |
| ^ | کلاهک / شروع خط | ابتدای خط یا ابتدای رشته (بسته به flag m) | ^سلام | سلام دنیا\nسلام خوبید | فقط “سلام”هایی را پیدا می کند که اول خط باشند. | اطمینان از شروع درست (مثل شروع ایمیل) |
| $ | دلار | انتهای خط یا انتهای رشته | دنیا$ | سلام دنیا\nخوبید | فقط “دنیا”هایی را پیدا می کند که در انتهای خط باشند. | اعتبارسنجی انتهای رشته (مثل .com$) |
| \d | دیجیت | هر رقم بین ۰–۹ | \d{3} | کد ۱۲۳۴۵۶ | “۱۲۳”, “۴۵۶” | شماره تلفن، کدپستی، کارت بانکی |
| \D | غیر دیجیت | هر چیزی بهجز رقم | \D+ | سلام۱۲۳دنیا | “سلام”, “دنیا” | جدا کردن متن از عدد |
| \w | ورد / کلمه | حروف، اعداد و زیرخط (a-z, A-Z, ۰–۹, _) | \w+ | ali_123 reza@ali | “ali_123” | نام کاربری، متغیرها |
| \W | غیر ورد | هر چیزی بهجز \w | \W+ | ali_123!!!reza | “!!!” | جدا کردن کلمات از علائم |
| \s | اسپیس / فضای خالی | فضای سفید، تب، خط جدید | \s+ | سلام دنیا\tخوبید\n | ” “, “\t”, “\n” | پاک کردن فاصلههای اضافی |
| \S | غیر فضای خالی | هر چیزی بهجز فضای سفید | \S+ | سلام دنیا | “سلام”, “دنیا” | گرفتن کلمات بدون فاصله |
| \b | مرز کلمه (Word Boundary) | مرز بین \w و \W (شروع یا پایان کلمه واقعی) | \bcat\b | cat scatter catercat | فقط “cat” بهتنهایی | جستجوی کلمه کامل (نه داخل کلمه دیگر) |
| \B | غیر مرز کلمه | جایی که مرز کلمه نیست | \Bcat | scatter catercat | “cat”cat در “scatter” و “catercat” | پیدا کردن وقتی کلمه داخل کلمه بزرگتر است |
| [abc] | کلاس کاراکتری | یکی از کاراکترهای داخل براکت | [aeiou] | سلام خوب | هر حرف صدادار | پیدا کردن مصوتها یا مجموعه خاص |
| [^abc] | نفی کلاس | هر چیزی بهجز موارد داخل براکت | [^0-9] | abc123def | “abc”, “def” | حذف اعداد یا کاراکترهای خاص |
| ( ) | گروهبندی | گروه کردن الگو + ذخیره در حافظه (capture) | (سلام)\s(دنیا) | سلام دنیا | گروه ۱: “سلام”، گروه ۲: “دنیا” | استخراج بخشهای خاص، جایگزینی هوشمند |

استفاده از رجکس Regex در سرچ کنسول گوگل
سرچ کنسول گوگل یکی از محبوبترین ابزارهای گوگل برای نظارت بر عملکرد سایتها در موتور جستجو است. سرچ کنسول از رجکس Regex برای فیلتر و تحلیل دادههای وب استفاده میکند. این کاربرد رجکس را از دنیای برنامهنویسی به ابزارهای مدیریتی وب میبرد و نشان میدهد چگونه میتواند به سئو کمک کند. در سرچ کنسول، رجکس برای فیلتر کردن URLها، کوئریهای جستجو یا حتی ارورهای crawl استفاده میشود. مثلاً، با الگویی مانند ^/blog/.* میتوانید تمام صفحات بلاگ را جدا و عملکردشان را بررسی کنید. این کار به مدیران سایت کمک میکند تا الگوهای ترافیک را شناسایی کنند. مثلا میتوانند صفحاتی که با کلمات کلیدی خاص شروع میشوند را پیدا کنند بدون اینکه نساز باشد تمام دادهها را دانلود کنند.
مزایای استفاده از رجکس
رجکس Regex مزایای زیادی دارد و به همین دلیل در بین مهندسان نرم افزار و طراحی سایت تبدیل به یک ابزار ضروری شده است.
- رجکس با یک خط کد، کاری را انجام میدهد که در حالت عادی به دهها یا شاید صدها خط کد نیاز دارد.
- رجکس حتی روی فایلهای چند صد مگابایتی یا گیگابایتی هم در کسری از ثانیه کار میکند.
- رجکس بخش زیادی از حافظه و ظرفیت CPU را استفاده نمیکند.
- Regex تقریبا در تمام زبانهای برنامهنویسی و ابزارهای مدرن کار میکند.
- رجکس به شما این امکان را میدهد که الگوهایی که دوباره استفاده میشوند را بنویسید و با پروژهها و تیمهای دیگر به اشتراک بگذارید
- رجکس قویترین و دقیقترین روش برای اعتبارسنجی ایمیل، شماره تلفن، کد ملی، URL، رمز عبور و تاریخ است.
- رجکس دادههای مورد نیاز را از HTML، XML، JSON نامنظم و لاگهای پیچیده بهراحتی استخراج میکند.
- رجکس تعداد باگها و خطاهای پردازش متن را بهشدت کاهش میدهد.

کلام پایانی
رجکس Regex در ظاهر یک ابزار ساده به نظر میرسد ولی کار پردازش متن را خیلی ساده میکند. با رجکس میتوانید به تمام فرمتهای لازم در یک متن یا رشته طولانی دست پیدا کنید و دیگر در هیچ لاگ شلوغی چیزی از چشمتان پنهان نمیماند. یک خط رجکس میتواند ساعتها کار دستی را در کسری از ثانیه انجام دهد و هزاران خط کد را حذف کند. این ابزار کار را خیلی راحتتر کرده و بسیاری از مهندسان برنامهنویس مدام در پروژههای مختلف از آن استفاده میکنند.
در صورتی که هنوز کسب و کار خود را وارد حوزه دیجیتال نکرده اید و سایت ندارید حتما سری به سایت وب نگاران پارسه بزنید و نمونه های طراحی سایت را ببینید. برای استفاده از خدمات سئو و یا طراحی سایت حرفه ای با شرکت وب نگاران تماس بگیرید.02166928787 – 09123790588
سوالات متداول
رجکس Regex چیست؟
یک زبان کوچک و قدرتمند برای توصیف و پیدا کردن الگوهای متنی در رشتهها و فایلها.
آیا رجکس فقط در برنامهنویسی استفاده میشود؟
خیر، در ویرایشگرهای متن، وردپرس، گوگل شیتس، اکسل، سرچ کنسول گوگل، PowerShell و خیلی ابزارهای روزمره هم قابل استفاده است.
مهمترین کاربردهای رجکس چیست؟
اعتبارسنجی ورودیها، جستجو و جایگزینی، استخراج داده، پاکسازی متن، تحلیل لاگ از جمله کاربردهای مهم این زبان ساده هستند.


