4.6 KiB
4.6 KiB
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
587d7dbb367417b2b2512baa | Reuse Patterns Using Capture Groups | 1 | إعادة استخدام الأنماط باستخدام مجموعات الالتقاط |
Description
capture groups
. يتم استخدام الأقواس ، (
و )
، للعثور على أجزاء فرعية متكررة. يمكنك وضع تعبير النمط الذي سيتكرر بين الأقواس. لتحديد مكان ظهور سلسلة التكرار ، استخدم خط مائل عكسي ( \
) ثم رقمًا. يبدأ هذا الرقم من 1 ويزيد مع كل مجموعة التقاط إضافية تستخدمها. على سبيل المثال سيكون \1
لمطابقة المجموعة الأولى. يتطابق المثال أدناه مع أي كلمة تحدث مرتين مفصولة بمسافة: let repeatStr = "regex regex"؛باستخدام أسلوب
اترك repeatRegex = / (\ w +) \ s \ 1 /؛
repeatRegex.test (repeatStr)؛ // يعود صحيح
repeatStr.match (repeatRegex)؛ // Returns ["regex regex"، "regex"]
.match()
على سلسلة سيعود مصفوفة مع السلسلة يطابق ، جنبا إلى جنب مع مجموعة الالتقاط الخاصة به. Instructions
capture groups
في reRegex
لمطابقة الأرقام التي يتم تكرارها ثلاث مرات فقط في سلسلة ، كل منها مفصولة بمسافة. Tests
tests:
- text: يجب أن يستخدم تعبيرك المنطقي فئة الأحرف المختصرة للأرقام.
testString: 'assert(reRegex.source.match(/\\d/), "Your regex should use the shorthand character class for digits.");'
- text: يجب أن يعيد التعبير المعتاد مجموعة الالتقاط مرتين.
testString: 'assert(reRegex.source.match(/\\\d/g).length === 2, "Your regex should reuse the capture group twice.");'
- text: يجب أن يكون للتعبير العادي منطقتين تفصلان الأرقام الثلاثة.
testString: 'assert(reRegex.source.match(/\\s/g).length === 2, "Your regex should have two spaces separating the three numbers.");'
- text: يجب أن يتطابق تعبيرك العادي مع <code>"42 42 42"</code> .
testString: 'assert(reRegex.test("42 42 42"), "Your regex should match <code>"42 42 42"</code>.");'
- text: يجب أن يتطابق تعبيرك العادي مع <code>"100 100 100"</code> .
testString: 'assert(reRegex.test("100 100 100"), "Your regex should match <code>"100 100 100"</code>.");'
- text: يجب ألا يتطابق تعبيرك العادي مع <code>"42 42 42 42"</code> .
testString: 'assert.equal(("42 42 42 42").match(reRegex.source), null, "Your regex should not match <code>"42 42 42 42"</code>.");'
- text: يجب ألا يتطابق تعبيرك العادي مع <code>"42 42"</code> .
testString: 'assert.equal(("42 42").match(reRegex.source), null, "Your regex should not match <code>"42 42"</code>.");'
- text: يجب ألا يتطابق تعبيرك العادي مع <code>"101 102 103"</code> .
testString: 'assert(!reRegex.test("101 102 103"), "Your regex should not match <code>"101 102 103"</code>.");'
- text: يجب ألا يتطابق تعبيرك العادي مع <code>"1 2 3"</code> .
testString: 'assert(!reRegex.test("1 2 3"), "Your regex should not match <code>"1 2 3"</code>.");'
- text: يجب أن يتطابق تعبيرك العادي مع <code>"10 10 10"</code> .
testString: 'assert(reRegex.test("10 10 10"), "Your regex should match <code>"10 10 10"</code>.");'
Challenge Seed
let repeatNum = "42 42 42";
let reRegex = /change/; // Change this line
let result = reRegex.test(repeatNum);
Solution
// solution required