C#字符串解析为数组

时间:2013-09-09 09:01:49

标签: c# string parsing

我需要解析例如这样的字符串: “你好,我的名字是鲍里斯,[image1.jpg]我喜欢喝茶[img2.jpg]”

我希望获得字符串数组:

Arr[0] ="Hello, my name is Boris, "
Arr[1] ="image1.jpg"
Arr[2] ="  i like drinking tea "
Arr[3] ="img2.jpg"

4 个答案:

答案 0 :(得分:5)

如果字符串中总是有方括号,这应该可以解决问题。

string str = "Hello, my name is Boris, [image1.jpg] i like drinking tea [img2.jpg]";
string[] Arr = str.Split(new char[] { '[', ']' }, StringSplitOptions.RemoveEmptyEntries);

答案 1 :(得分:0)

你可以使用Replace使所有“[”成为“]”,然后使用Split,就像这样:

str = str.Replace("[", "]");

string[] Arr = str.Split(']');

答案 2 :(得分:-1)

使用正则表达式:

    var regex = new Regex(@"(.+)\[(.+)\](.+)\[(.+)\]");
    Match match = regex.Match("");
    if (match.Success) {
        match = match.NextMatch();
        string[] parts = match.Groups.Cast<Group>().Where(x => x.Success).Select(x => x.Value).ToArray();
    }

答案 3 :(得分:-1)

这应该可以解决问题。

string[] strs = Regex.Split(str, "(?<Token>\[.*?\])", RegexOptions.Singleline)