如何分割字符串以从AAA获得ABC(A B C)(A B C)(ABC:abc)

时间:2011-10-24 17:03:19

标签: c#

我有一个像"AAA( A B C) (ABC:abc)"

这样的字符串

我想像"AAA( A B C)"那样拆分字符串 我们如何实现使用String.Split()方法?

字符串可以是AAA(ABC:abc)或AAA(A B C)BCD(X Y Z)(ABC:abc)。我的目标是将其分成两个单独的字符串(ABC:abc)。

希望这会让它更清晰。

4 个答案:

答案 0 :(得分:1)

好吧,您可以使用SplitJoin来做到这一点,但这不是很好或不高效:

string input = "AAA( A B C) (ABC:abc)";
string result = String.Join(" ", input.Split(' ').Take(4).ToArray())

另一种方法是使用LastIndexOf找到最后一个空格:

string result = input.Substring(0, input.LastIndexOf(' '));

答案 1 :(得分:0)

如果我了解您的需求,您可以使用:

string s = "AAA( A B C) (ABC:abc)";
string t = s.Substring(0, s.IndexOf(')') + 1);

答案 2 :(得分:0)

在这种情况下,

Regex.Split是更好的选择。

var pattern = @"(?<=\)) (?=\()";
var input = "AAA( A B C) (ABC:abc)";

var parts = Regex.Split(input, pattern);

Assert.AreEqual("AAA( A B C)", parts[0]);

如果您的字符串完全改变了长度,例如:

   AAAAAAA(A B C D)(ABCD:abcd)

此正则表达式仍会匹配部分AAAAAAA( A B C D)(ABCD:abcd)

答案 3 :(得分:-1)

"AAA( A B C) (ABC:abc)".Split(new[] { ") (" }, StringSplitOptions.None);