¿Cómo puedo usar expresiones regulares y javascript para dividir el comando siguiente en tokens:
-
05-10-2019 - |
Pregunta
filter -n ""function(file) { return file.owner == "john"; }""
debe analiza en la siguiente matriz:
[ 'filter',
'-n',
'function(file) { return file.owner == "john"; }' ]
Solución
No estoy del todo seguro de cómo quiere manejar las comillas dobles. ¿Quieres también ser capaz de cadenas de mango con una única comilla doble en cada extremo, o son las comillas siempre se duplicó?
var string = 'filter -n ""function(file) { return file.owner == "john"; }""';
var regex = /([^"\s]+)|""(.*?)""/g;
var match;
var result = [];
while (match = regex.exec(string)) {
result.push(match[1] || match[2]);
}
alert(result);
Resultados:
filter,-n,function(file) { return file.owner == "john"; }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow