Escreva uma função ou programa que pode dividir uma string em cada ocorrência não escapada de um caractere separador.
Deve aceitar três parâmetros de entrada:
A string O caractere separador O caractere de escapeDeve produzir uma lista de strings.
Regras para divisão:
Os campos que foram separados pelos separadores, tornam-se os elementos da lista de saída. Campos vazios devem ser preservados, mesmo no início e no final.Regras para escapar:
"Escapeado" significa precedido por uma ocorrência do caractere de escape que ainda não escapou. Quando o caractere de escape precede um caractere que não tem significado especial, ele ainda conta como um escape (mas não faz nada de especial). Cada ocorrência do caractere de escape que foi usado para escapar de algo não deve se tornar parte da saída.Demonstre que sua função satisfaz o seguinte caso de teste:
um ^ | uno || tres ^^^^ | quatro ^^^ | ^ cuatro |e usando
|como um separador e
^como caractere de escape, sua função deve gerar o seguinte array:
['one | uno', ", 'three ^^', 'quatro ^ | quatro',"]
tokenize
é uma função.
testString: 'assert(typeof tokenize === "function", "tokenize
is a function.");'
- text: tokenize
deve retornar um array.
testString: 'assert(typeof tokenize("a", "b", "c") === "object", "tokenize
should return an array.");'
- text: 'tokenize("one^|uno||three^^^^|four^^^|^cuatro|", "|", "^")
deve retornar ["one | uno", "", "three ^^" , "quatro ^ | cuatro", ""] ")'
testString: 'assert.deepEqual(tokenize(testStr1, "|", "^"), res1, "tokenize("one^|uno||three^^^^|four^^^|^cuatro|", "|", "^")
should return ["one|uno", "", "three^^", "four^|cuatro", ""]");'
- text: 'tokenize("a@&bcd&ef&&@@hi", "&", "@")
deve retornar ["a&bcd", "ef", "", "@hi"]
'
testString: 'assert.deepEqual(tokenize(testStr2, "&", "@"), res2, "tokenize("a@&bcd&ef&&@@hi", "&", "@")
should return ["a&bcd", "ef", "", "@hi"]
");'
```