ما نوع Regex الذي تستخدمه هذه الأداة؟+−
محرّك التعبيرات النمطية المدمج في JavaScript (المحرّك الذي يقف خلف RegExp وString.prototype.match/replace)، لأن كل شيء هنا يعمل من جانب العميل في متصفحك بدلًا من خادم. وهو قريب جدًا من PCRE لكن له بعض الاختلافات - فعلى سبيل المثال، يعتمد دعم lookbehind على إصدار المحرّك، وتستخدم المجموعات المسمّاة صيغة (?<اسم>...).
لماذا يتطابق نمطي مرة واحدة فقط؟+−
بشكل افتراضي، وبدون العلم g (الشامل)، يتوقف التعبير النمطي بعد أول تطابق - وهذا يعكس السلوك الفعلي لـ RegExp.exec() وString.match() في JavaScript. فعّل العلم g أعلاه لإيجاد كل التطابقات في نص الاختبار بدلًا من التطابق الأول فقط.
ما الفرق بين (...) و(?:...)؟+−
كلاهما يجمّع أجزاء من النمط معًا، لكن فقط (...) - مجموعة التقاط - يحفظ ما طابقه لتتمكن من الرجوع إليه لاحقًا (كـ $1، $2، ... في الاستبدال، أو في قائمة مجموعات التطابق). أمّا (?:...) فهي مجموعة بلا التقاط: تُجمّع وتُطبّق المحدّدات الكمية دون الاحتفاظ بالتطابق، وهذا مفيد عندما تحتاج إلى التجميع دون الاهتمام بالنص الملتقَط.
كيف تعمل المجموعات المسمّاة واستبدالات $<اسم>؟+−
اكتب (?<اسم>...) بدلًا من (...) لالتقاط مجموعة تحت اسم بدلًا من رقم فقط. في وضع الاستبدال، أشر إليها في نص الاستبدال كـ $<اسم> - على سبيل المثال، (?<سنة>\d{4})-(?<شهر>\d{2}) عند استبدالها بـ $<شهر>/$<سنة> تُعيد ترتيب تاريخ دون الحاجة لتذكّر أرقام المجموعات.
ما الفرق بين المحدِّد الجشع (greedy) والمحدِّد الكسول (lazy)، مثل + مقابل +؟؟+−
يطابق المحدِّد الجشع (+، *، {2,4}) أكبر قدر ممكن من النص، ثم يتراجع فقط إذا لزم الأمر للسماح لبقية النمط بالمطابقة. أما المحدِّد الكسول - نفس الرمز متبوعًا بـ؟ - فيطابق أقل قدر ممكن بدلاً من ذلك، ويتوسع حرفًا واحدًا في كل مرة فقط عند الحاجة. على سبيل المثال، يطابق <.+> مقابل <a><b> بجشع كامل <a><b>، بينما يطابق <.+?> بكسل فقط <a>.
ماذا يتحقق النظر الأمامي والخلفي (lookahead/lookbehind) بالفعل إذا لم يستهلكا أي أحرف؟+−
يتحققان مما إذا كان نمط ما يظهر مباشرة قبل أو بعد الموضع الحالي دون تضمينه في المطابقة نفسها - لذا يتحقق (?=...) و(?<=...) للأمام/للخلف من وجود شيء يجب أن يكون موجودًا، بينما يتحقق (?!...) و(?<!...) من أنه يجب ألا يكون موجودًا. لهذا يمكنك استخدام \d+(?=px) لمطابقة رقم فقط عندما يتبعه 'px'، بينما لا تظهر 'px' نفسها أبدًا في النص المطابق.