freeCodeCamp/guide/arabic/certifications/javascript-algorithms-and-d.../regular-expressions/reuse-patterns-using-captur.../index.md

1.7 KiB

title localeTitle
Reuse Patterns Using Capture Groups إعادة استخدام الأنماط باستخدام مجموعات الالتقاط

إعادة استخدام الأنماط باستخدام Capture Group

تلميح 1:

كود المقدمة أدناه:

let testString = "test test test "; let reRegex =/(test)\s\1/; let result = reRegex.test(testString);

سوف تتطابق result مع test test فقط لأن \1 في هذا المثال تشير إلى نفس النص الذي تم مؤخرًا تطابقه مع المجموعة الأولى (test) .

إذا كنا سنترجم التعبير المعتاد حرفياً ، فسيبدو شيئًا كالتالي:

let re = /(test)\s\1/; let literalRe = /test\stest/;

كل من rea و literalRe تطابق نفس الشيء.

تلميح 2:

نظرا للرمز أدناه:

let testString = "test test test "; let reRegex =/(test)(\s)\1\2\1/; let result = reRegex.test(testString);

سيطابق test test test كامل test test test بسبب: \1 يكرر (اختبار) \2 يكرر (\ s)

تلميح 3:

الكود أدناه:

let testString = "test test test test test test"; let reRegex =/(test)(\s)\1\2\1/g; let result = reRegex.test(testString);

نظرًا لأننا استخدمنا \g ، فلن يعود التعبير المعتاد الخاص بنا بعد أول مباراة كاملة ( test test test ) ويطابق كل التكرار.

تنبيه المفسد - الحل إلى الأمام!

حل:

let repeatNum = "42 42 42"; let reRegex = /^(\d+)\s\1\s\1$/; let result = reRegex.test(repeatNum);