我有一个像"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)。
希望这会让它更清晰。
答案 0 :(得分:1)
好吧,您可以使用Split
和Join
来做到这一点,但这不是很好或不高效:
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);