freeCodeCamp/curriculum/challenges/spanish/08-coding-interview-prep/rosetta-code/tokenize-a-string-with-esca...

3.0 KiB

title id challengeType videoUrl localeTitle
Tokenize a string with escaping 594faaab4e2a8626833e9c3d 5 Tokenize una cadena con escape

Description

Escriba una función o programa que pueda dividir una cadena en cada aparición sin escape de un carácter separador.

Debe aceptar tres parámetros de entrada:

La cadena El carácter separador El carácter de escape

Debe salir una lista de cadenas.

Reglas para dividir:

Los campos que estaban separados por los separadores, se convierten en los elementos de la lista de salida. Los campos vacíos deben conservarse, incluso al principio y al final.

Reglas para escapar:

"Escapado" significa precedido por una aparición del carácter de escape que aún no se ha escapado. Cuando el personaje de escape precede a un personaje que no tiene un significado especial, todavía cuenta como un escape (pero no hace nada especial). Cada aparición del carácter de escape que se utilizó para escapar de algo, no debe formar parte de la salida.

Demuestre que su función satisface el siguiente caso de prueba: Cadena dada

 uno ^ | uno || tres ^^^^ | cuatro ^^^ | ^ cuatro | 
y usando
 | 
como separador y
 ^ 
como carácter de escape, su función debería generar la siguiente matriz:

 ['one | uno', ", 'three ^^', 'four ^ | quatro',"]
  

Instructions

Tests

tests:
  - text: <code>tokenize</code> es una función.
    testString: 'assert(typeof tokenize === "function", "<code>tokenize</code> is a function.");'
  - text: <code>tokenize</code> debería devolver una matriz.
    testString: 'assert(typeof tokenize("a", "b", "c") === "object", "<code>tokenize</code> should return an array.");'
  - text: '<code>tokenize(&quot;one^|uno||three^^^^|four^^^|^cuatro|&quot;, &quot;|&quot;, &quot;^&quot;)</code> debe devolver [&quot;one | uno&quot;, &quot;&quot;, &quot;three ^^&quot; , &quot;cuatro ^ | cuatro&quot;, &quot;&quot;] &quot;)'
    testString: 'assert.deepEqual(tokenize(testStr1, "|", "^"), res1, "<code>tokenize("one^|uno||three^^^^|four^^^|^cuatro|", "|", "^") </code> should return ["one|uno", "", "three^^", "four^|cuatro", ""]");'
  - text: '<code>tokenize(&quot;a@&amp;bcd&amp;ef&amp;&amp;@@hi&quot;, &quot;&amp;&quot;, &quot;@&quot;)</code> debe devolver <code>[&quot;a&amp;bcd&quot;, &quot;ef&quot;, &quot;&quot;, &quot;@hi&quot;]</code>'
    testString: 'assert.deepEqual(tokenize(testStr2, "&", "@"), res2, "<code>tokenize("a@&bcd&ef&&@@hi", "&", "@")</code> should return <code>["a&bcd", "ef", "", "@hi"]</code>");'

Challenge Seed

function tokenize(str, esc, sep) {
  return true;
}

After Test

console.info('after the test');

Solution

// solution required