107 lines
2.8 KiB
Markdown
107 lines
2.8 KiB
Markdown
![]() |
---
|
||
|
id: 587d7db7367417b2b2512b9c
|
||
|
title: Trovare uno o più criminali in una caccia
|
||
|
challengeType: 1
|
||
|
forumTopicId: 301343
|
||
|
dashedName: find-one-or-more-criminals-in-a-hunt
|
||
|
---
|
||
|
|
||
|
# --description--
|
||
|
|
||
|
È ora di fare un po' di pausa e testare le tue nuove abilità di scrittura di espressioni regolari. Un gruppo di criminali è evaso dalla prigione ed è scappato via, ma non sai quanti. Tuttavia, sai che stanno vicini quando sono in mezzo ad altre persone. Tu sei responsabile della ricerca di tutti i criminali contemporaneamente.
|
||
|
|
||
|
Ecco un esempio per rivedere come farlo:
|
||
|
|
||
|
L'espressione regolare `/z+/` riconosce la lettera `z` quando appare una o più volte in una riga. Troverà corrispondenze in tutte le seguenti stringhe:
|
||
|
|
||
|
```js
|
||
|
"z"
|
||
|
"zzzzzz"
|
||
|
"ABCzzzz"
|
||
|
"zzzzABC"
|
||
|
"abczzzzzzzzzzzzzzzzzzzzzabc"
|
||
|
```
|
||
|
|
||
|
Ma non trova corrispondenze nelle seguenti stringhe poiché non ci sono caratteri `z`:
|
||
|
|
||
|
```js
|
||
|
""
|
||
|
"ABC"
|
||
|
"abcabc"
|
||
|
```
|
||
|
|
||
|
# --instructions--
|
||
|
|
||
|
Scrivi un'espressione regolare greedy che trovi uno o più criminali all'interno di un gruppo di altre persone. Un criminale è rappresentato dalla lettera maiuscola `C`.
|
||
|
|
||
|
# --hints--
|
||
|
|
||
|
La tua espressione regolare dovrebbe riconoscere un criminale (`C`) nella stringa `C`
|
||
|
|
||
|
```js
|
||
|
assert('C'.match(reCriminals) && 'C'.match(reCriminals)[0] == 'C');
|
||
|
```
|
||
|
|
||
|
La tua espressione regolare dovrebbe riconoscere due criminali (`CC`) nella stringa `CC`
|
||
|
|
||
|
```js
|
||
|
assert('CC'.match(reCriminals) && 'CC'.match(reCriminals)[0] == 'CC');
|
||
|
```
|
||
|
|
||
|
La tua espressione regolare dovrebbe riconoscere tre criminali (`CCC`) nella stringa `P1P5P4CCCcP2P6P3`.
|
||
|
|
||
|
```js
|
||
|
assert(
|
||
|
'P1P5P4CCCcP2P6P3'.match(reCriminals) &&
|
||
|
'P1P5P4CCCcP2P6P3'.match(reCriminals)[0] == 'CCC'
|
||
|
);
|
||
|
```
|
||
|
|
||
|
La tua espressione regolare dovrebbe riconoscere cinque criminali (`CCCCC`) nella stringa `P6P2P7P4P5CCCCCP3P1`
|
||
|
|
||
|
```js
|
||
|
assert(
|
||
|
'P6P2P7P4P5CCCCCP3P1'.match(reCriminals) &&
|
||
|
'P6P2P7P4P5CCCCCP3P1'.match(reCriminals)[0] == 'CCCCC'
|
||
|
);
|
||
|
```
|
||
|
|
||
|
La tua espressione regolare non dovrebbe riconoscere nessun criminale nella stringa vuota `""`
|
||
|
|
||
|
```js
|
||
|
assert(!reCriminals.test(''));
|
||
|
```
|
||
|
|
||
|
La tua espressione regolare non dovrebbe riconoscere nessun criminale nella stringa `P1P2P3`
|
||
|
|
||
|
```js
|
||
|
assert(!reCriminals.test('P1P2P3'));
|
||
|
```
|
||
|
|
||
|
La tua espressione regolare dovrebbe riconoscere cinquanta criminali (`CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC`) nella stringa `P2P1P5P4CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP3`.
|
||
|
|
||
|
```js
|
||
|
assert(
|
||
|
'P2P1P5P4CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP3'.match(
|
||
|
reCriminals
|
||
|
) &&
|
||
|
'P2P1P5P4CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP3'.match(
|
||
|
reCriminals
|
||
|
)[0] == 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'
|
||
|
);
|
||
|
```
|
||
|
|
||
|
# --seed--
|
||
|
|
||
|
## --seed-contents--
|
||
|
|
||
|
```js
|
||
|
let reCriminals = /./; // Change this line
|
||
|
```
|
||
|
|
||
|
# --solutions--
|
||
|
|
||
|
```js
|
||
|
let reCriminals = /C+/; // Change this line
|
||
|
```
|