tengo cadena como estamejor manera de analizar espacio separado del texto
/c SomeText\MoreText "Some Text\More Text\Lol" SomeText
Quiero tokenize que, sin embargo no puedo dividir en los espacios. He encontrado un analizador algo feo que funciona, pero me pregunto si alguien tiene un diseño más elegante.
Esto está en C# por cierto.
EDIT: Mi versión fea, aunque fea, es O (N) y en realidad puede ser más rápido que usar un RegEx.
private string[] tokenize(string input)
{
string[] tokens = input.Split(' ');
List<String> output = new List<String>();
for (int i = 0; i < tokens.Length; i++)
{
if (tokens[i].StartsWith("\""))
{
string temp = tokens[i];
int k = 0;
for (k = i + 1; k < tokens.Length; k++)
{
if (tokens[k].EndsWith("\""))
{
temp += " " + tokens[k];
break;
}
else
{
temp += " " + tokens[k];
}
}
output.Add(temp);
i = k + 1;
}
else
{
output.Add(tokens[i]);
}
}
return output.ToArray();
}
favor nos dicen más sobre lo que estamos tratando de lograr, incluyendo por qué no se puede dividir en espacios. Entonces podemos adaptar nuestras respuestas a su situación. –