تستر و ویژوالایزر آنلاین رایگان regex. یک عبارت معمولی جاوا اسکریپت را بنویسید و آن را به عنوان یک نمودار تعاملی ترسیم شده ببینید، به زبان انگلیسی ساده توضیح داده شده و با گروههای عکسبرداری با کد رنگی تطبیق داده شود. جایگزین، استخراج، واحد تست و کد صادرات، بدون ثبت نام.
یک تستر regex که معنی الگوی شما را به شما نشان می دهد
عبارات منظم را در یک مکان تست، اشکال زدایی و درک کنید. یک الگو را تایپ کنید و فوراً بهعنوان یک نمودار راهآهن تعاملی ترسیم میشود، توکن به نشانه به زبان انگلیسی ساده توضیح داده میشود، و با هر تطابق و تصویربرداری با رنگهایلایت شده، روی متن خود اجرا کنید. جایگزین کنید، استخراج کنید، تقسیم کنید، تست های واحد بنویسید، کدهای کاری را برای 9 زبان صادر کنید و در مورد بازگشت فاجعه آمیز هشدار دریافت کنید، همه در داخل مرورگر خود.
اکثر تسترهای regex فقط به شما می گویند که آیا یک الگو مطابقت دارد یا خیر. این یکی هم به شما نشان می دهد که چرا. همانطور که شما تایپ می کنید، عبارت منظم تجزیه می شود و به عنوان نمودار راه آهن ترسیم می شود: یک نقشه از چپ به راست که در آن هر مسیر از نمودار، رشته ای است که الگو می تواند مطابقت داشته باشد. هر جعبه ای را نگه دارید و کاراکترهای مطابق در الگوی شما روشن می شوند و یک توضیح ساده به زبان انگلیسی به شما می گوید که آن قطعه دقیقا چه کاری انجام می دهد. مکان نما متن را از طریق الگو حرکت دهید و نمودار آن را دنبال می کند. در زیر، الگوی شما به صورت زنده با متن آزمایشی شما اجرا میشود که هر مسابقه برجسته شده است و هر گروه عکسبرداری به رنگ خاص خودش است، بنابراین میتوانید همزمان ببینید چه چیزی و چرا مطابقت دارد.
ویژگی ها
نمودار راهآهن تعاملی از هر الگوی: یک جعبه را نگه دارید تا آن را در رژکس روشن کنید
توضیح ساده به انگلیسی هر نشانه، گروه، کمیت و نگاه
برجستهسازی مسابقه زنده با گروههای عکسبرداری با کد رنگی در داخل متن
روی یک مسابقه کلیک کنید تا ببینید هر گروه دقیقاً در نمودار چه چیزی را ثبت کرده است
ویرایشگر الگوی نحوی که نشانگر شما را دنبال می کند
همه پرچمهای جاوا اسکریپت: g، i، m، s، u، v (مجموعههای یونیکد) و y
با $1، $<name>، $& و یک پیشنمایش برجسته شده قبل/بعد از آن جایگزین کنید
منطبقها را به فهرستی با قالبها، منحصربهفرد/مرتبسازی، صادرات CSV و JSON استخراج کنید
متن را با یک regex تقسیم کنید، و تست های واحدی که باید (یا نباید) مطابقت داشته باشند
صادرات کد برای JavaScript، TypeScript، Python، PHP، Java، C#، Go، Rust و Ruby
جدول سازگاری: ببینید کدام ویژگی در Python، PCRE، Go یا Rust خراب می شود
محافظ ReDoS: در یک کارگر اجرا میشود، الگوهای فرار را متوقف میکند و کمیسازهای تودرتو را پرچمگذاری میکند.
کتابخانه ای از 40 الگوی آزمایش شده به اضافه یک سازنده از نمونه های تولید شده
cheatsheet قابل کلیک، الگوهای ذخیره شده و پیوندهای قابل اشتراک گذاری، 100٪ در مرورگر شما
نحوه استفاده از تستر و ویژوالایزر Regex
1
یک الگو را وارد کنید
یک regex تایپ کنید (با چسباندن /pattern/flag ها به طور خودکار آن را تقسیم می کند)، یکی را از کتابخانه الگو انتخاب کنید، یا از نمونه هایی در تب Build یکی را ایجاد کنید.
2
پرچمها را تغییر دهید
برای تغییر رفتار منطبق، روی g، i، m، s، u، v یا y کلیک کنید. پرچم را نگه دارید تا ببینید چه کار می کند.
3
نمودار بصری را بخوانید
ماوس را نگه دارید یا روی هر کادر در نمودار راه آهن کلیک کنید یا به توضیح بروید تا ببینید هر قسمت از الگو به چه معناست.
4
با متن خود تست کنید
متن را در رشته تست بچسبانید. مسابقات و گروه های عکسبرداری به صورت زنده برجسته می شوند. برای مشاهده مقدار هر گروه در نمودار، روی یک مطابقت کلیک کنید.
5
جایگزین کنید، استخراج کنید یا آزمایش کنید
از تستهای Replace، Extract، Split و Unit استفاده کنید تا بررسی کنید الگو دقیقاً همان چیزی است که شما نیاز دارید.
6
صادرات یا اشتراک گذاری
کد کار زبان خود را از زبانه کد کپی کنید، نمودار را به صورت SVG/PNG دانلود کنید یا پیوند اشتراک گذاری را کپی کنید.
موارد استفاده رایج
یک regex پیچیده ای را که به ارث برده اید، یک جعبه نمودار در یک زمان درک کنید
اشکال زدایی که چرا یک regex با داده های شما مطابقت ندارد
ایمیل، URL، تلفن یا الگوی رمز عبور را قبل از ارسال اعتبارسنجی کنید
استخراج فیلدها از خطوط ورود به سیستم با گروه های ضبط نام
با ارجاعات گروهی، یک Find-and-Replace را بسازید و پیش نمایش کنید
یک regex جاوا اسکریپت را به پایتون، PHP، Go یا جاوا منتقل کنید
بررسی الگوی عقبگرد فاجعه بار (ReDoS)
آموزش یا یادگیری عبارات منظم با توضیح تصویری
راهنمای تفصیلی
نحوه خواندن نمودار راه آهن regex
نمودارهای راهآهن (نحوه نحو) مانند یک مسیر قطار خوانده میشوند: از نقطه سمت چپ شروع کنید، هر مسیری را تا انتها دنبال کنید و کاراکترهایی که از آنها عبور میکنید رشتهای را تشکیل میدهند که regex میپذیرد. شاخه ها به معنای جایگزین ها هستند، مسیری که از زیر به عقب باز می شود به معنای تکرار است، و مسیری که کادر بالا را دور می زند به معنای آن قسمت اختیاری است. قابهای رنگی گروههای عکسبرداری هستند (همان رنگها در موارد مشخص شده شما استفاده میشود)، قابهای چیندار نگاههایی هستند که بدون مصرف متن بررسی میشوند، و جعبههای قرصشکل لنگرهایی هستند که به جای یک کاراکتر، با یک موقعیت مطابقت دارند. روی یک تطابق در نتایج کلیک کنید و هر فریم گروه مقدار دقیقی را که به دست آورده است نشان میدهد، یا اگر آن گروه نادیده گرفته شد، «بدون مطابقت» را نشان میدهد.
در نمودار
نحو Regex
معنی
جعبه با متن نقل قول
abc \. \n
دقیقا همین شخصیت ها
جعبه لیست "یکی از:"
[a-z0-9_]
هر شخصیت منفرد از مجموعه
جعبه لیست "هیچ یک از:"
[^\s@]
هر شخصیتی که در مجموعه نیست
جعبه سبز (رقم، کاراکتر کلمه…)
\d \w \s .
مختصر کلاس کاراکتر
جعبه ای به شکل قرص
^ $ \b
یک لنگر: یک موقعیت، نه یک شخصیت
آهنگ به شاخه ها تقسیم می شود
گربه | سگ
هر دو جایگزین
ردیابی حلقهها به پایین
+ * {2,5}
تکرار (برچسب نشان می دهد چند بار)
مسیرهای دور زدن بالا را دنبال کنید
? * {0,3}
قسمت اختیاری است
حلقه چین دار
+? *?
تنبلی: تا حد امکان کمتر این کار را تکرار کنید
قاب رنگی "نام شماره 1"
(…) (?<نام>…)
گروه ضبط، شماره گذاری شده از چپ به راست
قاب نقطه چین 'به دنبال:'
(?=…) (?!…) (?<=…)
نگاه به جلو / نگاه به پشت
برگه تقلب Regex: نحوی که هر روز از آن استفاده خواهید کرد
برگه تقلب داخلی را در بالای تستر باز کنید و روی هر نشانه ای کلیک کنید تا آن را در مکان نما خود وارد کنید. اینها بلوک های سازنده تقریباً هر الگوی هستند:
رمز
مسابقات
مثال
\d
یک رقم 0-9
\d{4} با 2026 مطابقت دارد
\w
حرف، رقم یا خط زیر
\w+ با user_42 مطابقت دارد
\s
فضای خالی (فضا، برگه، خط جدید)
a\sb با 'a b' مطابقت دارد
.
هر کاراکتری به جز شکست خط
a.c با abc، a-c مطابقت دارد
[abc] / [^abc]
یکی از / هیچ یک از کاراکترهای فهرست شده
[aeiou] با یک مصوت مطابقت دارد
^ و $
شروع و انتهای رشته (یا خط با m)
^\d+$ فقط رقم است
\b
یک مرز کلمه
\bcat\b از "پیوستگی" رد می شود
* + ?
0+، 1+، یا 0-1 تکرار
colou?r با رنگ، رنگ مطابقت دارد
{n,m}
بین n و m تکرار
\d{2,4}
(…) و (?<نام>…)
گروه ضبط / گروه نامگذاری شده
(?<year>\d{4})
(?:…)
گروه بدون گرفتن
(?:ab)+
\1، \k<name>
همان متن گروه قبلی
(\w)\1 با 'll' مطابقت دارد
(?=…) (?!…)
به دنبال / نه دنبال شده توسط
\d+(?=px)
(?<=…) (?<!…)
قبل از / نه قبل از
(?<=\$)\d+
پرچم های Regex توضیح داده شد
پرچم ها نحوه رفتار کل الگو را تغییر می دهند. آنها را با یک کلیک تغییر دهید. پرچم را نگه دارید تا ببینید چه کار می کند.
پرچم
نام
اثر
g
جهانی
به جای توقف در اول، هر مسابقه را پیدا کنید
i
نادیده گرفتن مورد
حروف با حروف بزرگ یا کوچک مطابقت دارند
m
چند خطی
^ و $ در شروع/پایان هر خط مطابقت دارند
s
dotAll
. همچنین با شکست خط مطابقت دارد
u
یونیکد
با شکلک ها و شخصیت های اختری به عنوان یک شخصیت رفتار می کند. \p{…} را فعال می کند
v
مجموعه های یونیکد
هر کاری که انجام می دهید، به علاوه مجموعه عملیاتی مانند [\p{L}--[a-z]]
y
چسبنده
هر مسابقه باید دقیقاً از جایی شروع شود که مسابقه قبلی به پایان رسیده است
جایگزین، استخراج، تقسیم و تست واحد در یک مکان
برای ایجاد یک قانون Find-and-Replace با نشانه های $1، $<name>، $& و $$، به Replace بروید. نتیجه هر قطعه درج شده را برجسته می کند تا بتوانید قبل از اجرای آن بر روی داده های واقعی آن را بررسی کنید. استخراج، هر مسابقه را با استفاده از یک الگو (مثلاً 2 دلار، 1 دلار برای تعویض دو گروه)، با گزینههای منحصربهفرد و مرتبسازی و صادرات CSV یا JSON برای صفحات گسترده به فهرستی تبدیل میکند. Split دقیقاً آنچه را که String.split() برمی گرداند نشان می دهد، از جمله جداکننده های ضبط شده. تستهای واحد به شما امکان میدهند رفتار را مشخص کنید: رشتههایی را اضافه کنید که باید مطابقت داشته باشند، باید کاملاً مطابقت داشته باشند یا نباید مطابقت داشته باشند، و تعداد پاس/شکست در هر ضربه کلید بهروزرسانی میشود، بنابراین یک تغییر کوچک در الگوی شما هرگز موردی را که قبلاً رفع کردهاید، بیسروصدا نمیشکند.
عقبگرد فاجعه بار (ReDoS) و نحوه محافظت این تستر از شما
برخی از الگوها، مانند (a+)+$ یا (\w+\s?)*$، میتوانند به روشهای مختلف بین تکرارهایشان تقسیم شوند. وقتی ورودی تقریباً مطابقت دارد، موتور هر ترکیبی را امتحان میکند و میتواند یک برگه مرورگر را مسدود کند یا یک سرور را از کار بیاندازد، آسیبپذیری به نام ReDoS (معنای منظم انکار سرویس). این تستر هر الگو را در یک Web Worker جداگانه با محدودیت دو ثانیه اجرا می کند: اگر موتور گیر کرده باشد متوقف می شود و به جای صفحه ثابت، یک هشدار واضح دریافت می کنید. یک لنگر داخلی همچنین شکل مخاطرهآمیز (گروهی تکراری که قسمت داخلی آن نیز تکرار میشود) را قبل از ارسال، همراه با سایر اشتباهات رایج مانند یک نقطه بدون فرار در نام دامنه، محدودههای [A-z] و جایگزینهای خالی علامتگذاری میکند.
از همان regex در Python، PHP، Java، C#، Go، Rust و Ruby استفاده کنید
تستر موتور regex جاوا اسکریپت (ECMAScript) مرورگر شما را اجرا می کند، بنابراین نتایج برای جاوا اسکریپت، TypeScript و Node.js دقیق هستند. تب Code الگوی شما را به کد آماده برای چسباندن هشت زبان دیگر تبدیل میکند و قسمتهای متفاوت را تبدیل میکند: گروههای نامگذاریشده برای Python به (?P<name>…) تبدیل میشوند، پرچمها به RegexOptions برای C# یا درون خطی (?i) برای Go و Rust تبدیل میشوند، و توکنهای جایگزین برای هر زبان بازنویسی میشوند. جدول سازگاری همه ویژگی هایی که الگوی شما استفاده می کند و اینکه آیا هر موتور از آن پشتیبانی می کند را فهرست می کند:
از یک الگوی آزمایش شده شروع کنید یا یکی از نمونه ها را ایجاد کنید
کتابخانه الگو دارای 40 عبارت آماده و آزمایش شده است که هر کدام دارای متن نمونه است: ایمیل، URL، IPv4 و IPv6، شماره تلفن E.164 و ایالات متحده، گذرواژههای قوی، UUID، نسخههای معنایی، کد پستی بریتانیا، تاریخ ISO و DD/MM/YYYY، قیمتها، هشتگها، @منظور، برچسبهای برچسبهای HTMLN، لینکها کلمات و بیشتر اگر ترجیح می دهید از داده های خود شروع کنید، چند نمونه را در Build قرار دهید: مولد حروف، ارقام و نمادها را در الگویی مانند ^\d{4}-\d{2}-\d{2}$ گروه بندی می کند که می توانید آن را اصلاح کنید. Build همچنین می تواند از هر متن تحت اللفظی فرار کند بنابراین کاراکترها مانند . *؟ ( ) $ دقیقا مطابقت دارند.
خصوصی بر اساس طراحی
همه چیز به صورت محلی در موتور جاوا اسکریپت مرورگر شما اجرا می شود: هیچ چیزی که تایپ می کنید در سرور آپلود، ثبت یا ذخیره نمی شود. آخرین جلسه شما در این مرورگر نگهداری میشود تا بتوانید از جایی که کار را متوقف کردهاید ادامه دهید، الگوهای ذخیرهشده در دستگاه شما باقی بمانند، و پیوندهای اشتراکگذاری الگو، متن و آزمایشها را در خود URL حمل میکنند، بنابراین هیچ چیزی در سمت ما ذخیره نمیشود.
سوالات متداول
این تستر از چه طعم رژکس استفاده می کند؟
این موتور از موتور بیان منظم جاوا اسکریپت (ECMAScript) مرورگر شما استفاده می کند، همان موتوری که کروم، فایرفاکس، سافاری و Node.js استفاده می کنند، از جمله پرچم های g، i، m، s، u، v و y. نتایج برای جاوا اسکریپت و تایپ اسکریپت دقیق هستند. تب Code الگو را برای زبان های دیگر تبدیل می کند.
آیا می توانم گروه های ضبط را آزمایش کنم؟
بله. هر مسابقه موقعیت خود و مقدار هر گروه شماره گذاری شده و نامگذاری شده را فهرست می کند، گروه ها در متن شما با رنگ هایلایت می شوند و با کلیک بر روی یک مطابقت، مقدار ثبت شده هر گروه درست روی نمودار نشان داده می شود.
پیش نمایش جایگزین چگونه کار می کند؟
یک جایگزین را با استفاده از $1، $2 برای گروههای شمارهدار، $<name> برای گروههای نامگذاریشده، $& برای کل مسابقه و $$ برای علامت واقعی دلار تایپ کنید. نتیجه به صورت زنده به روز می شود و هر قطعه درج شده را برجسته می کند، دقیقاً همانطور که String.replace() آن را تولید می کند.
آیا داده های تست من خصوصی است؟
بله. regex به طور کامل در مرورگر شما، در یک Web Worker محلی اجرا می شود. الگوها و رشته های آزمایشی شما هرگز آپلود نمی شوند. الگوهای ذخیره شده فقط در این مرورگر باقی می مانند.
چگونه یک عبارت منظم را در برابر متن خود آزمایش کنم؟
الگوی خود را تایپ کنید و متن نمونه را بچسبانید. مسابقات به صورت زنده برجسته میشوند، با گروههای ضبط نشان داده میشوند، بنابراین میتوانید دقیقاً آنچه که regex شما مطابقت دارد را ببینید و آن را فوراً اصلاح کنید.
چرا regex من با چیزی مطابقت ندارد؟
دلایل رایج عبارتند از یک پرچم گم شده (i برای case، m so ^ و $ work در هر خط، s بنابراین . شکسته های خط را قطع می کند)، یک کاراکتر خاص بدون فرار، یا نحو از زبان دیگر. نمودار را نگه دارید تا ببینید هر قسمت چه انتظاری دارد، توضیح ساده به انگلیسی را بخوانید و اخطارهای زیر الگو را بررسی کنید.
آیا می توانم همین الگو را برای جاوا اسکریپت و طعم های دیگر آزمایش کنم؟
تطبیق بر روی موتور جاوا اسکریپت اجرا میشود و تب Code کدهای کاری برای Python، PHP، Java، C#، Go، Rust و Ruby تولید میکند و گروههای نامگذاری شده، پرچمها و نحو جایگزین را تبدیل میکند. یک جدول سازگاری نشان میدهد که کدام ویژگیها، مانند نگاه به عقب یا مراجع پشتیبان، در هر موتور پشتیبانی نمیشوند.
ویژوالایزر regex یا نمودار راه آهن چیست؟
یک تجسمکننده regex یک عبارت منظم را به عنوان نمودار راهآهن ترسیم میکند: مسیری که از چپ به راست دنبال میکنید، جایی که شاخهها جایگزین هستند، حلقهها تکرار هستند و بایپسها بخشهای اختیاری هستند. خواندن الگوهای طولانی بسیار آسان تر از نحو خام است. در اینجا نمودار تعاملی است: یک کادر را نگه دارید تا آن را در الگو برجسته کنید و یک توضیح ساده به انگلیسی را ببینید.
آیا می توانم نمودار regex را دانلود کنم؟
بله. از دکمه های SVG یا PNG در بالای نمودار برای دانلود آن برای مستندات، بررسی کد یا مطالب آموزشی استفاده کنید. کنترلهای بزرگنمایی و تناسب به عرض به الگوهای بلند کمک میکنند.
عقبگرد فاجعه آمیز (ReDoS) چیست؟
زمانی اتفاق میافتد که الگویی مانند (a+)+$ بتواند همان متن را بین تکرارهای تو در تو به روشهای مختلف تقسیم کند، بنابراین یک ورودی تقریباً از دست رفته باعث میشود موتور برای چند ثانیه یا چند ساعت کار کند. این تستر الگوها را در Web Worker اجرا میکند، آنها را پس از دو ثانیه متوقف میکند و قبل از استقرار در مورد کمیسازهای تودرتو هشدار میدهد.
چگونه یک regex جاوا اسکریپت را به پایتون تبدیل کنم؟
تب Code را باز کنید و پایتون را انتخاب کنید. ابزار (?<name>…) را به صورت (?P<name>…)، \k<name> را به صورت (?P=name) بازنویسی می کند، پرچم های i، m و s را به re.IGNORECASE، re.MULTILINE و re.DOTALL نگاشت می کند و جایگزین های $1 را به \g<1> تبدیل می کند. توجه داشته باشید که ماژول re داخلی پایتون از ویژگیهای یونیکد \p{…} پشتیبانی نمیکند.
پرچم های regex g، i، m، s، u، v و y به چه معنا هستند؟
g همه موارد منطبق را پیدا می کند، من حروف بزرگ را نادیده می گیرد، m باعث می شود ^ و $ روی هر خط کار کنند، s lets . خط match شکسته میشود، u ویژگیهای یونیکد و \p{…} کامل را فعال میکند، v عملیات مجموعه یونیکد را اضافه میکند و y (چسبنده) فقط در موقعیتی که آخرین مسابقه به پایان رسیده است مطابقت دارد.
تفاوت بین کمیت کننده حریص و تنبل چیست؟
کمیتکنندههای حریص (*، +، {n,m}) تا حد امکان مطابقت دارند، سپس در صورت نیاز کاراکترها را پس میدهند. تنبل ها (*؟، +؟، {n,m}؟) تا حد امکان کمتر مطابقت دارند و فقط در صورت نیاز گسترش می یابند. به عنوان مثال <.+> با یک خط کامل از برچسب ها مطابقت دارد، در حالی که <.+?> هر بار با یک برچسب مطابقت دارد. در نمودار، یک حلقه تنبل به صورت خط چین رسم شده است.
نگاه به آینده و نگاه به عقب چگونه کار می کنند؟
آنها بررسی می کنند که چه چیزی بعد از (?=…) یا قبل از (?<=…) موقعیت فعلی می آید بدون اینکه آن را در مسابقه لحاظ کنند. اشکال منفی (؟!…) و (?<!…) مستلزم آن است که متن وجود نداشته باشد. برای مثال \d+(?=px) با 12 در '12px' مطابقت دارد. جاوا اسکریپت از نگاه به هر طولی پشتیبانی می کند.
آیا این ابزار می تواند یک regex برای من ایجاد کند؟
بله. چند نمونه را در برگه Build قرار دهید و با تعمیم حروف، ارقام و نمادها الگویی را پیشنهاد میکند (به عنوان مثال 2026-09-24 تبدیل به \d{4}-\d{2}-\d{2} میشود). همچنین می توانید از 40 الگوی آزمایش شده در کتابخانه شروع کنید، مانند ایمیل، URL، آدرس IP، شماره تلفن، تاریخ و قوانین رمز عبور.
چگونه تست های واحد را برای یک عبارت منظم بنویسم؟
تب Unit tests را باز کنید و رشته هایی را اضافه کنید که باید مطابقت داشته باشند، باید کاملاً مطابقت داشته باشند یا نباید مطابقت داشته باشند. هر تست در هر ضربه کلید با تعداد قبولی/عدم شکست دوباره اجرا میشود و خطوط Import هر خط از متن تست شما را به یک مورد آزمایشی تبدیل میکند.
آیا می توانم یک regex را با کسی به اشتراک بگذارم؟
برای کپی کردن URL که الگوی دقیق، پرچمها، متن آزمایشی، جایگزینی و تستهای واحد را دوباره باز میکند، روی پیوند اشتراکگذاری کلیک کنید. همه چیز در داخل خود پیوند کدگذاری می شود، بنابراین هیچ چیز در یک سرور ذخیره نمی شود.
چه تفاوتی با regex101 یا RegExr دارد؟
regex101 به شما امکان می دهد بین چندین موتور مانند PCRE، Python و Java جابجا شوید، که این ابزار این کار را نمی کند. این آزمایشگر بر روی موتور جاوا اسکریپت تمرکز می کند که کد شما در واقع روی آن اجرا می شود و یک نمودار راه آهن تعاملی، تست های واحد، حفاظت ReDoS، صادرات کد برای 9 زبان و یک جدول سازگاری، بدون حساب و هیچ چیزی آپلود شده اضافه می کند.