2

例如,我需要解析这样的字符串: “你好,我的名字是 Boris,[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

4 回答 4

6

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

string str = "Hello, my name is Boris, [image1.jpg] i like drinking tea [img2.jpg]";
string[] Arr = str.Split(new char[] { '[', ']' }, StringSplitOptions.RemoveEmptyEntries);
于 2013-09-09T09:12:03.127 回答
1

您可以使用Replace使所有“[”成为“]”,然后Split使用它们,如下所示:

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

string[] Arr = str.Split(']');
于 2013-09-09T09:04:58.410 回答
0

使用正则表达式:

    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();
    }
于 2013-09-09T09:11:25.080 回答
0

这应该可以解决问题。

string[] strs = Regex.Split(str, "(?<Token>\[.*?\])", RegexOptions.Singleline)
于 2013-09-09T09:13:36.393 回答