2018-10-10 18:03:03 -04:00
|
|
|
|
---
|
|
|
|
|
id: 587d7db7367417b2b2512b9c
|
2020-12-16 00:37:30 -07:00
|
|
|
|
title: 在狩猎中找到一个或多个罪犯
|
2018-10-10 18:03:03 -04:00
|
|
|
|
challengeType: 1
|
2020-08-04 15:14:01 +08:00
|
|
|
|
forumTopicId: 301343
|
2021-01-13 03:31:00 +01:00
|
|
|
|
dashedName: find-one-or-more-criminals-in-a-hunt
|
2018-10-10 18:03:03 -04:00
|
|
|
|
---
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --description--
|
|
|
|
|
|
2020-08-04 15:14:01 +08:00
|
|
|
|
是时候暂停和测试你的新正则表达式写作技巧了。一群罪犯逃出监狱逃跑,但你不知道有多少人。但是,你知道他们和其他人在一起时会保持紧密联系。你有责任立刻找到所有的罪犯。
|
2020-12-16 00:37:30 -07:00
|
|
|
|
|
2020-08-04 15:14:01 +08:00
|
|
|
|
这里有一个示例来回顾如何做到这一点:
|
2020-12-16 00:37:30 -07:00
|
|
|
|
|
|
|
|
|
当字母`z`在一行中出现一次或连续多次时,正则表达式`/z+/`会匹配到它。它会在以下所有字符串中找到匹配项:
|
2020-08-04 15:14:01 +08:00
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
"z"
|
|
|
|
|
"zzzzzz"
|
|
|
|
|
"ABCzzzz"
|
|
|
|
|
"zzzzABC"
|
|
|
|
|
"abczzzzzzzzzzzzzzzzzzzzzabc"
|
|
|
|
|
```
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
但是它不会在以下字符串中找到匹配项,因为它们中没有字母`z`:
|
2020-08-04 15:14:01 +08:00
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
""
|
|
|
|
|
"ABC"
|
|
|
|
|
"abcabc"
|
|
|
|
|
```
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --instructions--
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
编写一个`贪婪`正则表达式,在一组其他人中匹配到一个或多个罪犯。罪犯由大写字母`C`表示。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --hints--
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
你的正则表达式应该匹配`'C'`中的 <em>一个</em> 罪犯('`C`')。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
|
|
|
|
```js
|
2020-12-16 00:37:30 -07:00
|
|
|
|
assert('C'.match(reCriminals) && 'C'.match(reCriminals)[0] == 'C');
|
|
|
|
|
```
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
你的正则表达式应该匹配`'CC'`中的 <em>两个</em> 罪犯('`CC`')。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
```js
|
|
|
|
|
assert('CC'.match(reCriminals) && 'CC'.match(reCriminals)[0] == 'CC');
|
2018-10-10 18:03:03 -04:00
|
|
|
|
```
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
你的正则表达式应该匹配`'P1P5P4CCCP2P6P3'`中的 <em>三个</em> 罪犯('`CCC`')。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
```js
|
|
|
|
|
assert(
|
|
|
|
|
'P1P5P4CCCP2P6P3'.match(reCriminals) &&
|
|
|
|
|
'P1P5P4CCCP2P6P3'.match(reCriminals)[0] == 'CCC'
|
|
|
|
|
);
|
|
|
|
|
```
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
你的正则表达式应该匹配`'P6P2P7P4P5CCCCCP3P1'`中的 <em>五个</em> 罪犯('`CCCCC`')。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
```js
|
|
|
|
|
assert(
|
|
|
|
|
'P6P2P7P4P5CCCCCP3P1'.match(reCriminals) &&
|
|
|
|
|
'P6P2P7P4P5CCCCCP3P1'.match(reCriminals)[0] == 'CCCCC'
|
|
|
|
|
);
|
|
|
|
|
```
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
你的正则表达式在`''`中不应该匹配到任何罪犯。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
|
|
|
|
```js
|
2020-12-16 00:37:30 -07:00
|
|
|
|
assert(!reCriminals.test(''));
|
|
|
|
|
```
|
2020-08-04 15:14:01 +08:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
你的正则表达式在`'P1P2P3'`中不应该匹配到任何罪犯。
|
2020-08-04 15:14:01 +08:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
```js
|
|
|
|
|
assert(!reCriminals.test('P1P2P3'));
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
你的正则表达式应该匹配`'P2P1P5P4CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP3'`中的 <em>五十个</em> 罪犯('`CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC`')。
|
2020-08-04 15:14:01 +08:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
```js
|
|
|
|
|
assert(
|
|
|
|
|
'P2P1P5P4CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP3'.match(
|
|
|
|
|
reCriminals
|
|
|
|
|
) &&
|
|
|
|
|
'P2P1P5P4CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP3'.match(
|
|
|
|
|
reCriminals
|
|
|
|
|
)[0] == 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'
|
|
|
|
|
);
|
2018-10-10 18:03:03 -04:00
|
|
|
|
```
|
2020-08-04 15:14:01 +08:00
|
|
|
|
|
2021-01-13 03:31:00 +01:00
|
|
|
|
# --seed--
|
|
|
|
|
|
|
|
|
|
## --seed-contents--
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
let reCriminals = /./; // Change this line
|
|
|
|
|
```
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --solutions--
|
|
|
|
|
|
2021-01-13 03:31:00 +01:00
|
|
|
|
```js
|
|
|
|
|
let reCriminals = /C+/; // Change this line
|
|
|
|
|
```
|