Command Palette

Search for a command to run...

Regex Builder: اختبر التعبيرات العادية بصريًا (باستخدام ورقة الغش)

Regex Builder: اختبر التعبيرات العادية بصريًا (باستخدام ورقة الغش)

T
Toolz Team
|Jul 1, 2026|17 دقيقة قراءة

جزء من مجموعة برمجة مطبوعة

لدي اعتراف من شأنه أن يجعل أنصار regex يتذمرون: في السنوات القليلة الأولى من مسيرتي المهنية، كتبت تعبيرات منتظمة عن طريق النسخ واللصق من Stack Overflow، وتغيير حرف واحد، وتشغيل الكود، ورؤيته يفشل، والتكرار حتى حدث ذلك. لم أفعل &#39؛ فهمت الأنماط - لقد قمت بتخويفهم لإجبارهم على الخضوع. لقد كان بطيئًا، والأسوأ من ذلك، أن الأنماط التي شحنتها كانت هشة بطرق استطعت &#39؛ لا أرى.

ما أصلح ذلك كان &#39؛ عند قراءة النظرية (على الرغم من أنني فعلت ذلك في النهاية). لقد كان جهاز اختبار بصري - صندوق أكتب فيه النمط، وصندوق ألصق فيه سلاسل الاختبار، ويطابق تلك التي تضيء في اللحظة التي أغير فيها شيئًا ما. فجأة أستطيع يرى لماذا \d+ حصلت على أكثر مما أردت، أو لماذا رفض نمط بريدي الإلكتروني عنوانًا صالحًا تمامًا. توقفت Regex عن كونها لعبة تخمين وأصبحت حلقة ردود فعل ضيقة.

هذا &#39؛ بالضبط ما regex builder على Toolz.dev هو. تكتب نمطًا، وتسقط بيانات الاختبار، وتتبديل العلامات، وتشاهد المطابقات والمجموعات الملتقطة المميزة في الوقت الفعلي. يتم تشغيله بالكامل في متصفحك، بحيث لا يتم تحميل خطوط السجل أو بيانات المستخدم &#39؛ يتم اختباره ضد عدم تحميله في أي مكان. هذا الدليل هو مرجع regex الذي أتمنى أن يكون I&#39؛d في ذلك الوقت - الأنماط التي أعيد استخدامها بالفعل، وورقة الغش الكاملة، والخطأ الوحيد الذي يمكن أن يؤدي إلى إزالة خادم الإنتاج.

ليرة تركية؛DR: الصق النمط الخاص بك واختبر السلاسل في regex builder وتبديل g/i/m علامات لرؤية أبرز المباريات مباشرة. ابدأ ببساطة، وأضف قيودًا لقتل النتائج الإيجابية الكاذبة، واختبر مدخلات الخصومة لتجنب التراجع الكارثي. بالنسبة للبيانات المستخرجة، قم بإقرانها مع تنسيق JSON و محول BASE64. كل جانب العميل، كل ذلك مجاني.


ما هو بالضبط التعبير العادي؟

التعبير العادي - regex أو regexp - عبارة عن سلسلة مدمجة تصف نمط البحث. بدلاً من &quot؛ ابحث عن كلمة cat،&quot؛ يمكنك أن تقول &quot؛ ابحث عن أي رقم مكون من خمسة أرقام، &quot؛ &quot؛ ابحث عن أي شيء يشبه البريد الإلكتروني، &quot؛ أو &quot؛ ابحث عن كل سطر يبدأ بـ ERROR.&quot؛ تدعمهم كل لغة ومحرر تقريبًا، وهو ما يجعل المهارة قابلة للنقل: تعلمها مرة واحدة واستخدمها في JavaScript وPython وyour grepوide&#39؛s البحث والاستبدال.

يأتي هذا المفهوم من نظرية اللغة الرسمية من الخمسينيات، وقام كين طومسون بتوصيله بالحوسبة في الستينيات لتحرير النص. هذا التاريخ مهم لسبب عملي واحد I&#39؛ سأعود إلى: &quot؛regular&quot؛ اللغات لها حدود، ولهذا السبب لا يستطيع regex حقًا تحليل الهياكل المتداخلة مثل HTML بغض النظر عن مدى ذكائك.

حيث أصل إلى regex في أسبوع عادي: التحقق من صحة إدخال المستخدم قبل أن يصل إلى قاعدة البيانات، وسحب الحقول من أسطر السجل غير المنظمة، وإجراء البحث والاستبدال عبر قاعدة بيانات كاملة يمكن للبحث العادي &#39؛t التعبير عنها، وتصفية البيانات أثناء الترحيل. regex builder هو المكان الذي أقوم فيه بوضع نموذج أولي لكل واحد من هؤلاء قبل أن يقترب من الكود الحقيقي.

فيما يلي اللبنات الأساسية - الأبجدية التي تجمع الأنماط منها

بناء الجملة معنى مثال المباريات
. أي حرف باستثناء السطر الجديد h.t قبعة، ساخنة، ضرب
\d أي رقم (0-9) \d{3} 123، 456
\w كلمة شار (az، AZ، 0-9، _) \w+ مرحبًا، اختبار_123
\s أي مسافة بيضاء hello\sworld مرحبا بالعالم
^ بداية السلسلة ^Hello مرحبا في البداية
$ نهاية السلسلة end$ النهاية في النهاية
* صفر أو أكثر ab*c ايه سي، اي بي سي، ايه بي بي سي
+ واحد او اكثر ab+c abc، abbc
? صفر أو واحد colou?r اللون، اللون
{n} بالضبط ن مرات \d{4} 2026
{n,m} بين ن و م \d{2,4} 12، 123، 1234
[abc] فئة الشخصية [aeiou] أي حرف متحرك
[^abc] فئة منفية [^0-9] أي غير رقم
(...) التقاط المجموعة (hello) يلتقط &quot؛مرحبا واقتباس؛
a|b التناوب (أو) cat|dog قطة أو كلب

ما هي أنماط Regex التي يجب على كل مطور أن يظل في متناول يده؟

هذه هي تلك I&#39؛ لقد تم اختبارها وكسرها وإصلاحها، واحتفظ بها الآن في ملف مقتطف شخصي. انسخها مباشرة إلى regex builder ورمي الحالات الخاصة بك عليهم.

البريد الإلكتروني (النوع العملي)

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

هذه المباريات [email protected] و [email protected]ويرفض @example.com أو user@com. هنا #39؛ الصدق المهم، على الرغم من ذلك: قواعد البريد الإلكتروني الكاملة في RFC 5322 معقد بشكل هائل - فهو يسمح تقنيًا بالسلاسل والتعليقات المقتبسة التي لا يستخدمها أحد تقريبًا. Don&#39؛ مطاردة امتثال RFC بنسبة 100% لـ regex. قم بمطابقة النسبة العملية 99% مع النمط أعلاه، ثم تأكد من أن العنوان حقيقي عن طريق إرسال بريد إلكتروني للتحقق. هذا &#39؛ الخطأ الذي أراه أكثر من غيره: حرق الفرق لأيام على &quot؛airtight&quot؛ البريد الإلكتروني regex الذي لا يزال بإمكانه &#39؛ يخبر البريد الوارد الحقيقي من الخطأ المطبعي.

عنوان URL

^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$

المباريات https://toolz.dev و http://www.example.com/path?query=value؛ يرفض ftp://... ونص عادي.

رقم الهاتف الأمريكي

^(\+1)?[-.\s]?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}$

مرنة بما فيه الكفاية ل 555-123-4567، (555) 123-4567، +1 555.123.4567، و 5551234567.

عنوان IPv4

^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$

التناوب المتداخل هو ما يفرض بقاء كل ثماني بتات في 0 stra255، لذلك يتم رفضها بشكل صحيح 999.999.999.999.

فحص كلمة المرور بقوة

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$

يتطلب ما لا يقل عن 8 أحرف بأحرف صغيرة، وأحرف كبيرة، ورقم، ورمز. ال (?=...) يؤكد كل من Lookaheads على شرط واحد دون استهلاك الشخصيات - وهي خدعة رائعة تستحق الفهم.

تاريخ ISO (YYY-MM-DD)

^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$

المباريات 2026-07-11، يرفض 2026-13-01 و 2026-02-32.

اللون السداسي

^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$

المباريات #4466EE، #abc، #000000.


ورقة الغش Regex

أبقِ هذا مثبتًا. It&#39؛s المرجع الذي أتحقق منه أكثر.

المراسي

نمط وصف
^ بداية السلسلة (أو السطر في الوضع متعدد الأسطر)
$ نهاية السلسلة (أو السطر في الوضع متعدد الأسطر)
\b حدود الكلمة
\B حدود غير الكلمات

محددات الكمية

نمط وصف
* 0 أو أكثر (جشع)
+ 1 أو أكثر (جشع)
? 0 أو 1 (جشع)
*? +? ?? الإصدارات الكسولة - تطابق أقل قدر ممكن
{n} {n,} {n,m} بالضبط n/n أو أكثر/بين n وm

فئات الشخصيات

نمط وصف
[abc] أ، ب، أو ج
[^abc] ليس أ، ب، أو ج
[a-z] [A-Z] [0-9] نطاقات
\d \D رقم / غير رقم
\w \W حرف الكلمة/حرف غير الكلمة
\s \S مسافة بيضاء/غير مساحة بيضاء

المجموعات والنظر حولها

نمط وصف
(abc) التقاط المجموعة
(?:abc) مجموعة غير الالتقاط
(?<name>abc) مجموعة الالتقاط المسماة
(?=abc) / (?!abc) نظرة إيجابية/سلبية
(?<=abc) / (?<!abc) إيجابي/نظرة سلبية وراء

أعلام

علم وصف
g عالمي - ابحث عن جميع المباريات
i حالة غير حساسة
m متعدد الخطوط - ^ و $ تطابق حدود الخط
s دوتال - . يطابق newlines
u دعم يونيكود

كيف يمكنك إنشاء نمط وتصحيح أخطائه دون خسارة ساعة؟

عمليتي مملة عن قصد، لأن المملة قابلة للتكرار

  1. ابدأ بأبسط شيء يطابق مثالًا حقيقيًا واحدًا. Don&#39؛ حاول التعامل مع كل حالة في وقت واحد.
  2. لصق سلاسل الاختبار الإيجابية والسلبية في ال regex builder- الأشياء التي يجب أن تتطابق والأشياء التي لا يجب أن تتطابق.
  3. تشديد لقتل الإيجابيات الكاذبة. إضافة المراسي (^، $) بحيث يتطابق النمط مع السلسلة بأكملها، ويتم تبديله . لفئات محددة مثل [a-z] أو [^,].
  4. رمي مدخلات معادية عليه- سلاسل فارغة، ومدخلات ضخمة، وUnicode، وأحرف regex الحرفية كبيانات.
  5. عندها فقط قم بالتحسين.

عندما يسيء شيء ما التصرف، فإنه &#39؛s دائمًا ما يكون واحدًا من ثلاثة أشياء. لو كان المباريات أكثر من اللازم، محددات الكمية الخاصة بك جشعة - اجعلها كسولة (*?) أو فصولك أكثر تحديدا. لو كان المباريات قليلة جدًا، ربما تحتاج إلى i ضع علامة أو نسيت الهروب من شخصية خاصة. لو كان لا يطابق أي شيء على الإطلاق، تحقق من وجود أحرف تعريفية لم يتم الهروب منها (.، *، +، (، [، {، وما إلى ذلك) يُقصد بها أن تكون أحرفًا حرفية أو غير مرئية مثل علامات التبويب المختبئة في سلسلة الاختبار الخاصة بك.


ما هو التراجع الكارثي، ولماذا يجب أن تخاف منه؟

هذا هو القسم I&#39؛ وشم على المطورين الجدد إذا استطعت. في وقت مبكر، قمت بشحن عبارة التحقق من صحة الإدخال التي بدت بريئة تمامًا، وبعد ظهر أحد الأيام، قام طلب واحد بربط نواة وحدة المعالجة المركزية بنسبة 100% وبقي هناك. كان النمط هو المشكلة.

عندما يستطيع محرك regex &#39؛ العثور على تطابق، فإنه التراجعات- يتراجع ويحاول طرقًا أخرى لإرضاء النمط. أشكال معينة تجعل عدد المسارات ينفجر بشكل كبير. مثال الكتاب المدرسي:

^(a+)+$

تغذية هذا المدخلات مثل aaaaaaaaaaaaaaaaaaaab (تشغيل من a تنتهي في أ b)، وتعطي محددات الكمية المتداخلة المحرك عددًا فلكيًا من الطرق لتقسيم as، كل ذلك يحاول قبل الختام &quot؛ لا تطابق.&quot؛ يتجمد تطبيقك. هذه فئة رفض خدمة حقيقية تسمى ReDoS (رفض خدمة التعبير العادي)، ويستغلها المهاجمون.

كيف تبقى آمنا:

  1. لا تعشش أبدًا محددات الكمية. (a+)+، (a*)*، و (a+)* هي أعلام حمراء.
  2. استخدم المجموعات الذرية أو محددات الكمية الملكية حيث يدعمهم المحرك: (?>a+) أو a++.
  3. كن محددا. [a-z]+ التراجعات أقل من .+ لأنه يحتوي على مسارات أقل لاستكشافها.
  4. ثبت أنماطك لذلك يفشل المحرك بسرعة عند الإدخال غير المطابق.
  5. اختبر باستخدام سلاسل تكاد تكون متطابقة ولكنها تفشل في النهاية- هذا &#39؛s أسوأ حالة للتراجع.

إذا كنت &#39؛re on Go، فهذه المشكلة ببساطة غير موجودة &#39؛t، وهو ما يقودني إلى القسم التالي.


كيف يختلف Regex بين اللغات؟

ينتقل بناء الجملة الأساسي بشكل جيد، لكن التفاصيل لاذعة. هذه هي الاختلافات I&#39؛ لقد تعثرت بالفعل.

جافا سكريبت:

const regex = /\d{3}-\d{4}/g;
const pattern = new RegExp('\\d{3}-\\d{4}', 'g'); // note the doubled backslashes
'555-1234'.match(regex);              // ["555-1234"]
const m = '2026-07-11'.match(/(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/);
m.groups.year;                        // "2026"

انتبه: لم يصل Lookbehind إلا في ES2018، \d يطابق أرقام ASCII فقط، و g العلم يصنع .test() حالة عبر lastIndex- مصدر خطأ دقيق في الحلقات.

بايثون:

import re
pattern = re.compile(r'\d{3}-\d{4}')      # raw strings avoid double-escaping
pattern.findall('Call 555-1234 or 555-5678')  # ['555-1234', '555-5678']

استخدم دائمًا السلاسل الخام (r'...'). يتذكر re.match المراسي فقط في البداية - استخدم re.search للعثور على أي مكان. و re.VERBOSE يتيح لك كتابة أنماط تعليق متعددة الأسطر، وهو ما يوفر الحياة للأنماط المعقدة.

فب: الأنماط تحتاج إلى محددات ('/\d{3}-\d{4}/')، يستخدم محرك PCRE القوي، و preg_match يعود 1، 0، أو false على الخطأ - لذا تحقق مع ===.

يذهب: يستخدم محرك RE2، والذي عمدا يسقط lookaheads، وlookbehinds، والمراجع الخلفية في مقابل ضمان مطابقة الوقت الخطي. وهذا يعني أنه لا يمكن حتى التراجع الكارثي - وهي مقايضة مختلفة حقًا تستحق المعرفة عند اختيار لغة لمطابقة المدخلات غير الموثوق بها.


مثال حقيقي: تحليل سطر سجل Apache

هنا #39؛s نوع الشيء الذي يعتبر regex رائعًا حقًا فيه. يبدو خط سجل الوصول القياسي إلى Apache كما يلي

192.168.1.1 - frank [11/Jul/2026:10:27:10 -0500] "GET /api/users HTTP/1.1" 200 1234

هذا النمط يفرقه:

^(\S+) \S+ (\S+) \[([^\]]+)\] "(\S+) (\S+) (\S+)" (\d{3}) (\d+)$

لصق كلاهما في regex builder وتضيء كل مجموعة تم التقاطها على حدة:

مجموعة محتوى مثال
1 عنوان IP 192.168.1.1
2 اسم المستخدم صريح
3 الطابع الزمني 11/يوليو/2026:10:27:10 -0500
4 طريقة HTTP يحصل
5 مسار الطلب /api/المستخدمين
6 نسخة HTTP HTTP/1.1
7 رمز الحالة 200
8 حجم الاستجابة 1234

بمجرد اصطفاف المجموعات في المختبر، ترجمتها إلى أ re.findall في بايثون أو أ match() في JavaScript أمر تافه - وأنت تعلم بالفعل أنه يعمل.


الأسئلة الشائعة

ما هو منشئ regex؟

منشئ regex هو أداة تفاعلية حيث تكتب تعبيرًا عاديًا وتراه على الفور مطابقًا لسلاسل الاختبار، مع تمييز المطابقات والمجموعات الملتقطة. فهو يستبدل حلقة الكتابة البطيئة والتشغيل والفشل وإعادة الكتابة في التعليمات البرمجية الخاصة بك بحلقة مباشرة. ال regex builder يقوم Toolz.dev بذلك بالكامل في متصفحك، لذلك تبقى بيانات الاختبار على جهازك.

هل أنماط regex متطابقة في كل لغة برمجة؟

بناء الجملة الأساسي متطابق تقريبًا، لكن التفاصيل تختلف بدرجة كافية لإحداث أخطاء. افتقرت JavaScript الأقدم إلى lookbehind، ولا يحتوي محرك Go&#39؛s RE2 على أي إشارات أو مراجع خلفية على الإطلاق، وتسمي Python مجموعات بها (?P<name>...) في بعض السياقات. قم دائمًا بتأكيد نمط في اللغة ou&#39؛ فهي في الواقع تستهدف بدلاً من افتراض إمكانية النقل.

كيف يمكنني التحقق من صحة عنوان البريد الإلكتروني باستخدام regex؟

استخدم نمطًا عمليًا مثل ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$، الذي يتعامل مع الغالبية العظمى من العناوين الحقيقية. لا تحاول الامتثال الكامل لـ RFC 5322 في regex - القواعد النحوية معقدة للغاية ولا تزال أنت و#39؛ سأرفض العناوين الصالحة أو تقبل الأخطاء المطبعية. قم بإقران regex برسالة تحقق عبر البريد الإلكتروني للتأكد من وجود البريد الوارد بالفعل.

لماذا يقوم جهاز regex الخاص بي بتجميد التطبيق؟

دائما تقريبا التراجع الكارثي. أنماط مع محددات الكمية المتداخلة مثل (a+)+ قم بإنشاء عدد هائل من المسارات المطابقة عندما تلبي المدخلات التي تكاد تتطابق ولكنها تفشل في النهاية، ويحاول المحرك تجربتها جميعًا. قم بإزالة محددات الكمية المتداخلة، وتفضل فئات أحرف معينة عليها .+، وأضف المراسي حتى يتعطل المحرك بسرعة.

هل يمكنني استخدام regex لتحليل HTML أو JSON؟

لا، ليس لأي شيء يتجاوز الاستخراج التافه. HTML وJSON ليسا لغتين عاديتين - فهما يسمحان بالتداخل التعسفي الذي لا يستطيع regex تتبعه بشكل أساسي. استخدم محللًا حقيقيًا: DOMParser أو Cheerio لـ HTML، و JSON.parse أو أداة JSON لـ JSON. Regex هي الأداة الخاطئة التي تعتمد على البنية اللحظية.

ماذا &#39؛s الفرق بين المطابقة الجشعة والكسولة؟

محددات الجشع (*، +، ?) الاستيلاء على أكبر قدر ممكن والتراجع إذا لزم الأمر؛ الكسالى (*?، +?، ??) الاستيلاء على أقل قدر ممكن والتوسع فقط إذا اضطررت. ضد <b>bold</b>، الجشع <.*> يبتلع الخيط بأكمله وهو كسول <.*?> يتوقف عند الأول <b>. غالبًا ما يكون اختيار النمط الصحيح هو الحل عندما يتطابق النمط كثيرًا.

كيف يمكنني الهروب من الشخصيات الخاصة في regex؟

ضع شرطة مائلة عكسية أمام أي حرف تعريفي تقصده حرفيًا: \.، \*، \+، \?، \(، \)، \[، \]، \{، \}، \^، \$، \|، و \\. تقدم لك معظم اللغات أيضًا مساعدًا للهروب من سلسلة كاملة - re.escape() في بايثون، على سبيل المثال - وهو أكثر أمانًا من الهروب يدويًا عندما تأتي السلسلة من إدخال المستخدم.

ماذا تعني أعلام regex g وi وm؟

g (العالمي) يجد كل تطابق بدلاً من التوقف عند الأول، i (تجاهل الحالة) يجعل النمط غير حساس لحالة الأحرف، و m (متعدد الخطوط) يصنع ^ و $ تطابق عند كل فاصل سطر بدلاً من بداية ونهاية السلسلة &#39؛ فقط. إنهم يجتمعون بحرية، لذلك gim يفعل الثلاثة. مسكتك المتكررة في جافا سكريبت: إعادة استخدام أ g يحمل Regex عبر المكالمات lastIndex بينهما مما يجعل test() بديل صحيح وخاطئ - إعادة إنشاء النمط أو إعادة تعيينه lastIndex.

ما هو التطلع إلى الأمام في regex؟

يؤكد البحث الأمامي أن شيئًا ما يفعل أو لا يفعل &#39؛ ويتبع ذلك، دون استهلاكه. foo(?=bar) مباريات foo فقط متى bar يأتي بعد ذلك؛ foo(?!bar) يطابق فقط عندما لا يفعل ذلك &#39؛t. انظر خلفك ((?<=...)، (?<!...)) يفعل الشيء نفسه بشكل عكسي، وقد وصل إلى JavaScript وPython وPCRE الحديثة - ولكن ليس إلى Go&#39؛s RE2، الذي يرفض كليهما تمامًا. قواعد كلمة المرور هي الاستخدام الكلاسيكي: ^(?=.*\d)(?=.*[a-z]).{8,}$ يقوم بتكديس التأكيدات بحيث يتم التحقق من كل متطلب بشكل مستقل في نفس الموضع.

كيف يمكنني مطابقة رقم الهاتف مع regex؟

بالنسبة لتنسيق معين، كن صريحًا وليس ذكيًا ^\(\d{3}\) \d{3}-\d{4}$ مباريات (555) 123-4567. لتحمل الفواصل المتنوعة، اسمح بفواصل اختيارية مثل ^\+?1?[-.\s]?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}$. ترقيم الهواتف فوضوي عبر البلدان، لذا تحقق فقط من التنسيق الذي تقبله فعليًا وقم بتطبيعه إلى أرقام قبل تخزينه - قم بإنشاء النموذج واختباره مباشرة قبل الثقة به.


إلتحاق بالركب

لقد انتقلت Regex من مهارتي الأكثر رعبًا إلى واحدة من أكثر مهارتي استخدامًا في اللحظة التي بدأت فيها بناء الأنماط في جهاز اختبار مباشر بدلاً من التخمين في المحرر الخاص بي. ابدأ ببساطة، واختبر المدخلات الحقيقية والعدائية، واحترم التراجع الكارثي، واحتفظ بمكتبة شخصية من الأنماط التي تثق بها.

ال regex builder في Toolz.dev، يجعل هذا التكرار سريعًا، مع المطابقة في الوقت الفعلي، وتمييز المجموعة، وتبديل العلامات - كل ذلك يعمل في متصفحك حتى تظل بيانات الاختبار الخاصة بك خاصة. عندما يستخرج النمط الخاص بك JSON، قم بتسليمه إلى تنسيق JSON؛ عندما يلتقط نقطة Base64، قم بفك تشفيرها باستخدام محول BASE64. أو تصفح جميع الأدوات المجانية التي يزيد عددها عن 600+ على تولز.ديف.

Frequently Asked Questions

A regex builder is an interactive tool where you type a regular expression and immediately see it matched against test strings, with matches and captured groups highlighted. It replaces the slow write-run-fail-rewrite loop in your code with a live one. The Regex Builder on toolz.dev does this entirely in your browser, so test data stays on your machine.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!