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

56 lines
1.7 KiB
Markdown
Raw Normal View History

---
title: Reuse Patterns Using Capture Groups
localeTitle: إعادة استخدام الأنماط باستخدام مجموعات الالتقاط
---
## إعادة استخدام الأنماط باستخدام 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);
`