UNPKG

simple-pure-utils

Version:

Funciones puras para manipulación de objetos, arreglos, promesas y observables

50 lines 3.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.regexParse = void 0; const logic_1 = require("../logic"); /**Divide la cadena en tokens donde cada token corresponde a un match de una parte de la cadena con cierto regex * Las partes de la cadena que no encajen se devuelven con un regexp indefinido */ function regexParse(text, patterns) { let index = 0; let ret = []; while (index < text.length) { const curr = text.substr(index); const matches = patterns .map(regex => ({ exec: regex.exec(curr), regex })) .filter(x => x.exec != null); ; const firstMatch = (0, logic_1.orderBy)(matches, x => x.exec.index)[0]; if (firstMatch === undefined) { //Ya no hay mas ocurrencias del regex: break; } const result = firstMatch.exec; const value = result[0]; const groups = (0, logic_1.skip)(result, 1); if (result.index > 0) { //Un pedazo de la cadena que no encajó con ninguno: ret.push({ value: curr.substr(0, result.index) }); } ret.push({ value: curr.substr(result.index, value.length), regex: firstMatch.regex, groups: groups }); index += result.index + value.length; } if (index < text.length) { const val = text.substr(index); ret.push({ value: val, }); } return ret; } exports.regexParse = regexParse; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RyaW5ncy9yZWdleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvQ0FBeUQ7QUFZekQ7O0dBRUc7QUFDSCxTQUFnQixVQUFVLENBQUMsSUFBWSxFQUFFLFFBQWtCO0lBQ3ZELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNkLElBQUksR0FBRyxHQUFpQixFQUFFLENBQUM7SUFDM0IsT0FBTyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUV4QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sT0FBTyxHQUNULFFBQVE7YUFDSCxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ1gsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFFO1lBQ3ZCLEtBQUs7U0FDUixDQUFDLENBQUM7YUFDRixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUMvQjtRQUNMLENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBc0IsSUFBQSxlQUFPLEVBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU3RSxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDMUIsc0NBQXNDO1lBQ3RDLE1BQU07U0FDVDtRQUVELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDL0IsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUEsWUFBSSxFQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUvQixJQUFJLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQ2xCLG1EQUFtRDtZQUNuRCxHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDO2FBQ3RDLENBQUMsQ0FBQztTQUNOO1FBRUQsR0FBRyxDQUFDLElBQUksQ0FBQztZQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUM5QyxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUs7WUFDdkIsTUFBTSxFQUFFLE1BQU07U0FDakIsQ0FBQyxDQUFDO1FBQ0gsS0FBSyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztLQUN4QztJQUVELElBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDcEIsTUFBTSxHQUFHLEdBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ0wsS0FBSyxFQUFFLEdBQUc7U0FDYixDQUFDLENBQUM7S0FDTjtJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2YsQ0FBQztBQWpERCxnQ0FpREMifQ==