الگوهای منظم را با هایلایت تطابق در زمان واقعی، اعتبارسنجی الگو و توضیحات نمادهای رایج regex آزمایش کنید. الگوهای مورد استفاده خود را با برچسبهای سفارشی ذخیره و دوباره استفاده کنید.
الگو و متن آزمایشی را وارد کنید تا نتایج را ببینید
الگو و متن آزمایشی را وارد کنید تا نتایج را ببینید
هنوز الگوی ذخیره شدهای وجود ندارد
.
هر کاراکتری به جز خط جدید را تطابق میدهد\d
هر عددی (0-9) را تطابق میدهد\D
هر غیر عددی را تطابق میدهد\w
هر کاراکتر کلمهای (a-z، A-Z، 0-9، _) را تطابق میدهد\W
هر کاراکتر غیر کلمهای را تطابق میدهد\s
هر کاراکتر فضای خالی را تطابق میدهد\S
هر کاراکتر غیر فضای خالی را تطابق میدهد^
ابتدای خط را تطابق میدهد$
پایان خط را تطابق میدهد*
0 یا بیشتر از کاراکتر قبلی را تطابق میدهد+
1 یا بیشتر از کاراکتر قبلی را تطابق میدهد?
0 یا 1 از کاراکتر قبلی را تطابق میدهد{n}
دقیقاً n از کاراکتر قبلی را تطابق میدهد{n,}
حداقل n از کاراکتر قبلی را تطابق میدهد{n,m}
بین n و m از کاراکتر قبلی را تطابق میدهد[abc]
هر یک از کاراکترهای داخل براکتها را تطابق میدهد[^abc]
هر کاراکتری که در براکتها نیست را تطابق میدهد(abc)
چندین توکن را با هم گروهبندی کرده و تطابق را ضبط میکندa|b
یا a یا b را تطابق میدهد\b
موقعیت مرز کلمه را تطابق میدهدتستکننده الگوهای عبارات منظم (regex) ابزاری ضروری برای توسعهدهندگان، تحلیلگران داده و هر کسی است که با پردازش متن کار میکند. این اعتبارسنج جامع الگوهای regex به شما امکان میدهد تا عبارات منظم را بهصورت زنده ایجاد، تست و اصلاح کنید و بازخورد بصری فوری در مورد تطابق الگوها ارائه میدهد. چه در حال اعتبارسنجی آدرسهای ایمیل، تجزیه فایلهای لاگ یا استخراج دادههای خاص از متن باشید، تستکننده regex ما فرآیند توسعه و اشکالزدایی را سریعتر و شهودیتر میکند.
عبارات منظم توالیهای الگوهای قدرتمندی هستند که امکان جستجو، اعتبارسنجی و دستکاری متنهای پیچیده را فراهم میکنند. با این حال، نحو آنها میتواند پیچیده و دشوار برای یادگیری باشد. این تستکننده الگوهای regex فرآیند را با هایلایت کردن تطابقها در حین تایپ، اعتبارسنجی نحو الگو و اجازه دادن به شما برای ذخیره الگوهای پرکاربرد برای ارجاع آینده ساده میکند.
استفاده از اعتبارسنج الگوهای regex ما ساده و شهودی است. برای شروع، مراحل زیر را دنبال کنید:
وارد کردن یک الگوی عبارت منظم: الگوی regex خود را در فیلد ورودی مشخص شده تایپ کنید. این ابزار الگوی شما را بهصورت زنده اعتبارسنجی میکند و شما را از هر گونه خطای نحوی مطلع میسازد.
انتخاب پرچمهای regex: پرچمهای مناسب برای الگوی خود را انتخاب کنید:
g
(جهانی): تمام تطابقها را پیدا کنید و نه فقط اولین تطابقi
(حساسیت به حروف بزرگ و کوچک): الگو را بدون توجه به حروف بزرگ و کوچک کنیدm
(چندخطی): باعث میشود ^
و $
با شروع/پایان هر خط مطابقت داشته باشندوارد کردن متن تست: متنی را که میخواهید در برابر الگوی خود تست کنید، در ناحیه متن تست وارد کنید.
مشاهده نتایج بهصورت زنده: در حین تایپ، این ابزار بهطور خودکار:
ذخیره الگوهای مفید: برای الگوهایی که بهطور مکرر استفاده میکنید:
کپی نتایج: از دکمه "کپی تطابقها" برای کپی کردن تمام متنهای مطابقت یافته به کلیپبورد خود برای استفاده در برنامههای دیگر استفاده کنید.
رابط کاربری به دو پنل اصلی تقسیم شده است: پنل ورودی که در آن الگو و متن تست خود را وارد میکنید، و پنل نتایج که تطابقها و اطلاعات الگو را نمایش میدهد.
عبارات منظم از کاراکترها و توالیهای خاص برای تعریف الگوهای جستجو استفاده میکنند. در اینجا راهنمایی برای نمادهای اساسی regex که توسط ابزار ما پشتیبانی میشود، آورده شده است:
نماد | توضیحات | مثال | تطابقها |
---|---|---|---|
. | هر کاراکتری به جز newline را مطابقت میدهد | a.c | "abc"، "adc"، "a1c" و غیره |
\d | هر عددی (۰-۹) را مطابقت میدهد | \d{3} | "123"، "456"، "789" و غیره |
\D | هر غیر عددی را مطابقت میدهد | \D+ | "abc"، "xyz" و غیره |
\w | هر کاراکتر کلمهای (a-z، A-Z، 0-9، _) را مطابقت میدهد | \w+ | "abc123"، "test_123" و غیره |
\W | هر غیر کاراکتر کلمهای را مطابقت میدهد | \W+ | "!@#"، " + " و غیره |
\s | هر کاراکتر فاصلهای را مطابقت میدهد | a\sb | "a b"، "a\tb" و غیره |
\S | هر غیر کاراکتر فاصلهای را مطابقت میدهد | \S+ | "abc"، "123" و غیره |
نماد | توضیحات | مثال | تطابقها |
---|---|---|---|
^ | با شروع خط مطابقت میدهد | ^abc | "abc" در ابتدای خط |
$ | با پایان خط مطابقت میدهد | abc$ | "abc" در پایان خط |
\b | با مرز کلمه مطابقت میدهد | \bword\b | "word" به عنوان یک کلمه کامل |
نماد | توضیحات | مثال | تطابقها |
---|---|---|---|
* | ۰ یا بیشتر از کاراکتر پیشین را مطابقت میدهد | a*b | "b"، "ab"، "aab" و غیره |
+ | ۱ یا بیشتر از کاراکتر پیشین را مطابقت میدهد | a+b | "ab"، "aab"، "aaab" و غیره |
? | ۰ یا ۱ از کاراکتر پیشین را مطابقت میدهد | colou?r | "color"، "colour" |
{n} | دقیقاً n از کاراکتر پیشین را مطابقت میدهد | a{3} | "aaa" |
{n,} | حداقل n از کاراکتر پیشین را مطابقت میدهد | a{2,} | "aa"، "aaa"، "aaaa" و غیره |
{n,m} | بین n و m از کاراکتر پیشین را مطابقت میدهد | a{2,4} | "aa"، "aaa"، "aaaa" |
نماد | توضیحات | مثال | تطابقها |
---|---|---|---|
[abc] | هر یک از کاراکترهای موجود در براکتها را مطابقت میدهد | [aeiou] | "a"، "e"، "i"، "o"، "u" |
[^abc] | هر کاراکتری که در براکتها نیست را مطابقت میدهد | [^aeiou] | هر کاراکتری به جز "a"، "e"، "i"، "o"، "u" |
[a-z] | هر کاراکتری در این محدوده را مطابقت میدهد | [a-z] | هر حرف کوچک |
نماد | توضیحات | مثال | تطابقها |
---|---|---|---|
(abc) | چندین توکن را با هم گروهبندی میکند و تطابق را ذخیره میکند | (abc)+ | "abc"، "abcabc" و غیره |
a|b | یا a یا b را مطابقت میدهد | cat|dog | "cat"، "dog" |
پس از تسلط بر مبانی، میتوانید الگوهای پیچیدهتری برای حل چالشهای پردازش متن ایجاد کنید:
1^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
2
این الگو آدرسهای ایمیل را اعتبارسنجی میکند و اطمینان حاصل میکند که از فرمت استاندارد پیروی میکند: username@domain.tld.
1^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
2
این الگو URLها را اعتبارسنجی میکند، از جمله آنهایی که با یا بدون پروتکل http/https هستند.
1^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$
2
این الگو شمارههای تلفن ایالات متحده را در فرمتهای مختلف مطابقت میدهد: (123) 456-7890، 123-456-7890 یا 1234567890.
1^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$
2
این الگو تاریخها را در فرمت YYYY-MM-DD اعتبارسنجی میکند و اعتبارسنجی پایهای برای محدودههای ماه و روز انجام میدهد.
پیشنگری و پسنگری به شما این امکان را میدهد که الگوها را فقط در صورتی مطابقت دهید که توسط الگوی دیگری دنبال یا پیش از آن قرار گرفته باشند:
a(?=b)
"a" را فقط در صورتی مطابقت میدهد که با "b" دنبال شودa(?!b)
"a" را فقط در صورتی مطابقت میدهد که با "b" دنبال نشود(?<=a)b
"b" را فقط در صورتی مطابقت میدهد که با "a" پیش از آن باشد(?<!a)b
"b" را فقط در صورتی مطابقت میدهد که با "a" پیش از آن نباشدتستکننده regex ما از پرچمهای مختلفی پشتیبانی میکند که نحوه مطابقت الگوها را تغییر میدهند:
^
و $
با شروع/پایان هر خط مطابقت داشته باشندعبارات منظم کاربردهای عملی زیادی در زمینههای مختلف دارند:
اعتبارسنجی فرم: اطمینان از اینکه ورودیهای کاربر با فرمتهای مورد نیاز مطابقت دارند:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
تجزیه HTML: استخراج عناصر یا ویژگیهای خاص:
<img[^>]+src="([^">]+)"
<a[^>]+href="([^">]+)"
تحلیل فایلهای لاگ: استخراج اطلاعات از ورودیهای لاگ:
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
ERROR: .*
تجزیه CSV: پردازش مقادیر جدا شده با کاما با زمینههای احتمالی نقل قول شده:
(?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))
پیدا کردن و جایگزینی: شناسایی الگوها برای جایگزینی:
<[^>]*>
(\d{3})(\d{3})(\d{4})
→ ($1) $2-$3
استخراج محتوا: کشیدن اطلاعات خاص از متنهای غیرساختاری:
\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{1,2},\s+\d{4}\b
\$\d+(?:\.\d{2})?
هایلایت نحوی: شناسایی ساختارهای زبانی:
\b(?:var|let|const)\s+([a-zA-Z_$][\w$]*)\b
function\s+([a-zA-Z_$][\w$]*)\s*\(
اصلاح کد: پیدا کردن الگوهایی که نیاز به بهروزرسانی دارند:
\.oldMethod\(
eval\(
تستکننده الگوهای regex ما شامل یک سیستم مدیریت الگو است که به شما امکان میدهد الگوهای پرکاربرد خود را ذخیره و دوباره استفاده کنید:
در نظر داشته باشید الگوهایی را ذخیره کنید که:
هنگام ذخیره الگوها، از برچسبهای توصیفی استفاده کنید که:
الگوهای ذخیره شده خود را بر اساس:
در حالی که ابزار ما بهطور مستقیم از به اشتراکگذاری الگوها بین کاربران پشتیبانی نمیکند، میتوانید:
حتی توسعهدهندگان باتجربه نیز با چالشهایی در عبارات منظم مواجه میشوند. در اینجا راهحلهایی برای مشکلات رایج آورده شده است:
اگر الگوی شما خطای اعتبارسنجی نشان میدهد:
اگر regex شما کند است یا باعث تأخیر در مرورگر میشود:
(a+)+
) خودداری کنیداگر الگوی شما متنهای ناخواسته را مطابقت میدهد:
^
و $
) برای مطابقت با رشتههای کامل استفاده کنید\b
) را در جاهای مناسب اضافه کنیداگر الگوی شما با متنهای مورد انتظار مطابقت ندارد:
i
)در حالی که regex قدرتمند است، همیشه بهترین راهحل برای هر کار پردازش متن نیست:
برای عملیات متنی ساده، متدهای رشتهای داخلی معمولاً واضحتر و کارآمدتر هستند:
String.indexOf()
برای پیدا کردن زیررشتههاString.startsWith()
و String.endsWith()
برای بررسی مرزهای رشتهString.split()
برای توکنسازی پایهایبرای فرمتهای داده ساختاری، تجزیهکنندههای اختصاصی معمولاً پایدارتر هستند:
برای درک معنای متن به جای فقط الگوها:
در نظر بگیرید که وقتی از regex استفاده نکنید:
عبارت منظم (regex) یک توالی از کاراکترها است که یک الگوی جستجو را تعریف میکند. این الگوها میتوانند برای جستجو، مطابقت و عملیات دستکاری متن استفاده شوند.
تستکننده الگوهای regex به شما کمک میکند تا عبارات منظم را توسعه و اشکالزدایی کنید و با ارائه بازخورد بصری فوری در مورد تطابقها، اعتبارسنجی نحو الگو و اجازه دادن به شما برای آزمایش الگوها و پرچمهای مختلف بدون نیاز به پیادهسازی آنها در کد، کار را آسانتر میکند.
برای مطابقت با کاراکترهای خاصی که معمولاً معنای خاصی در regex دارند، باید آنها را با یک بکاسلش فرار کنید. به عنوان مثال، برای مطابقت با یک نقطه، از \.
به جای فقط .
استفاده کنید.
.*
و .*?
در یک الگوی regex چیست؟.*
یک کمیتگر حریص است که بیشترین کاراکترها را مطابقت میدهد، در حالی که .*?
یک کمیتگر تنبل (غیر حریص) است که کمترین کاراکترها را مطابقت میدهد. این تمایز زمانی مهم است که بخواهید کوتاهترین تطابق را پیدا کنید به جای طولانیترین.
در حالی که نحو اصلی regex در بسیاری از زبانها مشابه است، تفاوتهای جزئی در پیادهسازی وجود دارد. تستکننده ما از موتور regex جاوااسکریپت استفاده میکند که با بسیاری از زبانهای وب سازگار است اما ممکن است تفاوتهایی با regex در زبانهایی مانند پایتون، جاوا یا پرل داشته باشد.
برای اعتبارسنجی اینکه یک رشته کامل با یک الگو مطابقت دارد، از لنگر ^
در ابتدای الگو و لنگر $
در انتهای regex خود استفاده کنید. به عنوان مثال، ^[0-9]+$
فقط رشتههایی را که کاملاً از اعداد تشکیل شدهاند، مطابقت میدهد.
گروههای ضبطکننده، که با پرانتزهای ()
ایجاد میشوند، به شما این امکان را میدهند که بخشهای خاصی از متن مطابقت یافته را استخراج کنید. در تستکننده ما، میتوانید تمام تطابقها، از جمله گروههای ضبط شده را مشاهده کنید. در زبانهای برنامهنویسی، معمولاً میتوانید به این ضبطها از طریق ایندکسگذاری نتیجه تطابق دسترسی پیدا کنید.
برای بهبود کارایی regex: با دقت از کلاسهای کاراکتر استفاده کنید، از استفاده غیرضروری از گروههای ضبطکننده (زمانی که ممکن است از گروههای غیرضبطکننده (?:...)
استفاده کنید) خودداری کنید، از استفاده از پیشنگریها/پسنگریها در متنهای بزرگ با احتیاط استفاده کنید و از الگوهای بسیار عمومی خودداری کنید.
اشتباهات رایج شامل: فراموش کردن فرار کردن کاراکترهای خاص، ایجاد الگوهایی که خیلی حریص هستند، فراموش کردن لنگر کردن الگوها (با ^
و $
)، و نوشتن عبارات بسیار پیچیدهای که نگهداری آنها دشوار است.
عبارات منظم برای تجزیه ساختارهای تو در تو مانند HTML یا XML مناسب نیستند. در حالی که میتوانید الگوهای regex برای مطابقت با HTML ساده ایجاد کنید، معمولاً بهتر است از یک تجزیهکننده HTML اختصاصی برای پردازش پیچیده HTML استفاده کنید.
امروز تستکننده الگوهای regex ما را امتحان کنید تا وظایف پردازش متن خود را ساده کنید، فرمتهای ورودی را اعتبارسنجی کنید و دادههای معنادار را از متنهای غیرساختاری استخراج کنید. چه شما یک مبتدی باشید که مبانی عبارات منظم را یاد میگیرد یا یک توسعهدهنده با تجربه که بر روی مطابقت الگوهای پیچیده کار میکند، ابزار ما ویژگیهایی را ارائه میدهد که به شما کمک میکند الگوهای regex خود را بهطور کارآمد ایجاد، تست و اصلاح کنید.
کشف ابزارهای بیشتری که ممکن است برای جریان کاری شما مفید باشند