Tôi có chuỗi như thế nàyCách tốt nhất để phân tích không gian Ly Tiêu
/c SomeText\MoreText "Some Text\More Text\Lol" SomeText
Tôi muốn tokenize nó, tuy nhiên tôi không thể chỉ chia trên không gian. Tôi đã nghĩ ra một trình phân tích cú pháp hơi xấu xí, nhưng tôi tự hỏi liệu có ai có thiết kế thanh lịch hơn không.
Đây là trong C# btw.
EDIT: Phiên bản xấu xí của tôi, trong khi xấu xí, là O (N) và thực sự có thể nhanh hơn sử dụng 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();
}
Hãy cho chúng tôi biết thêm về những gì bạn đang cố gắng hoàn thành, bao gồm lý do bạn không thể chia nhỏ không gian. Sau đó, chúng tôi có thể điều chỉnh câu trả lời cho tình huống của bạn. –