--- id: 587d7dbb367417b2b2512baa title: Reuse Patterns Using Capture Groups challengeType: 1 videoUrl: '' localeTitle: 使用捕获组重用模式 --- ## Description
您搜索的某些模式将在字符串中多次出现。手动重复该正则表达式是浪费的。有一种更好的方法可以指定何时在字符串中有多个重复子字符串。您可以使用capture groups搜索重复子字符串。括号()用于查找重复子串。你把模式的正则表达式重复在括号之间。要指定重复字符串的显示位置,请使用反斜杠( \ ),然后使用数字。此数字从1开始,随着您使用的每个其他捕获组而增加。一个例子是\1来匹配第一组。下面的示例匹配以空格分隔的两次出现的任何单词:
让repeatStr =“正则表达式正则表达式”;
let repeatRegex = /(\ w +)\ s \ 1 /;
repeatRegex.test(repeatStr); //返回true
repeatStr.match(repeatRegex); //返回[“regex regex”,“regex”]
对字符串使用.match()方法将返回一个数组,其中包含与其匹配的字符串及其捕获组。
## Instructions
reRegex使用capture groups来匹配在字符串中仅重复三次的数字,每个数字用空格分隔。
## Tests
```yml 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: 你的正则表达式应该匹配"42 42 42" 。 testString: 'assert(reRegex.test("42 42 42"), "Your regex should match "42 42 42".");' - text: 你的正则表达式应该匹配"100 100 100" 。 testString: 'assert(reRegex.test("100 100 100"), "Your regex should match "100 100 100".");' - text: 你的正则表达式不应该匹配"42 42 42 42" 。 testString: 'assert.equal(("42 42 42 42").match(reRegex.source), null, "Your regex should not match "42 42 42 42".");' - text: 你的正则表达式不应该匹配"42 42" 。 testString: 'assert.equal(("42 42").match(reRegex.source), null, "Your regex should not match "42 42".");' - text: 你的正则表达式不应该匹配"101 102 103" 。 testString: 'assert(!reRegex.test("101 102 103"), "Your regex should not match "101 102 103".");' - text: 你的正则表达式不应该匹配"1 2 3" 。 testString: 'assert(!reRegex.test("1 2 3"), "Your regex should not match "1 2 3".");' - text: 你的正则表达式应匹配"10 10 10" 。 testString: 'assert(reRegex.test("10 10 10"), "Your regex should match "10 10 10".");' ```
## Challenge Seed
```js let repeatNum = "42 42 42"; let reRegex = /change/; // Change this line let result = reRegex.test(repeatNum); ```
## Solution
```js // solution required ```