freeCodeCamp/curriculum/challenges/english/02-javascript-algorithms-an.../regular-expressions/find-one-or-more-criminals-...

2.4 KiB

id title challengeType forumTopicId dashedName
587d7db7367417b2b2512b9c Find One or More Criminals in a Hunt 1 301343 find-one-or-more-criminals-in-a-hunt

--description--

Time to pause and test your new regex writing skills. A group of criminals escaped from jail and ran away, but you don't know how many. However, you do know that they stay close together when they are around other people. You are responsible for finding all of the criminals at once.

Here's an example to review how to do this:

The regex /z+/ matches the letter z when it appears one or more times in a row. It would find matches in all of the following strings:

"z"
"zzzzzz"
"ABCzzzz"
"zzzzABC"
"abczzzzzzzzzzzzzzzzzzzzzabc"

But it does not find matches in the following strings since there are no letter z characters:

""
"ABC"
"abcabc"

--instructions--

Write a greedy regex that finds one or more criminals within a group of other people. A criminal is represented by the capital letter C.

--hints--

Your regex should match one criminal (C) in "C"

assert('C'.match(reCriminals) && 'C'.match(reCriminals)[0] == 'C');

Your regex should match two criminals (CC) in "CC"

assert('CC'.match(reCriminals) && 'CC'.match(reCriminals)[0] == 'CC');

Your regex should match three criminals (CCC) in the string P1P5P4CCCcP2P6P3.

assert(
  'P1P5P4CCCcP2P6P3'.match(reCriminals) &&
    'P1P5P4CCCcP2P6P3'.match(reCriminals)[0] == 'CCC'
);

Your regex should match five criminals (CCCCC) in "P6P2P7P4P5CCCCCP3P1"

assert(
  'P6P2P7P4P5CCCCCP3P1'.match(reCriminals) &&
    'P6P2P7P4P5CCCCCP3P1'.match(reCriminals)[0] == 'CCCCC'
);

Your regex should not match any criminals in ""

assert(!reCriminals.test(''));

Your regex should not match any criminals in "P1P2P3"

assert(!reCriminals.test('P1P2P3'));

Your regex should match fifty criminals (CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC) in "P2P1P5P4CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP3".

assert(
  'P2P1P5P4CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP3'.match(
    reCriminals
  ) &&
    'P2P1P5P4CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP3'.match(
      reCriminals
    )[0] == 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'
);

--seed--

--seed-contents--

let reCriminals = /./; // Change this line

--solutions--

let reCriminals = /C+/; // Change this line