拆分字符串而忽略分隔符的字符?

时间:2017-04-24 14:55:39

标签: c#

我正在使用分隔符' / '拆分以下字符串 问题是,在同一个字符串中,我有一个“ - ”字符,想要删除它以及我之后拥有的字符。

输入

var test = "This/ is /a - test";
 test.Split('/');

输出

test[0] = "This"
test[1] = "is"
test[2] = "a - test"

在测试[2]中它应该是“a”

4 个答案:

答案 0 :(得分:4)

这对你有用吗?

var test = "This/ is /a - test";
var split1 = test.Split('-');
var split2 = split1[0].Split('/');

基本上是什么maccettura说。

答案 1 :(得分:3)

首先在-字符上拆分字符串。你说你希望在那之后忽略所有内容,所以取结果数组的[0]索引并对其进行第二次字符串拆分,分开:/

var test = "This/ is /a - test";
string[] hyphenSplit = test.Split('-');
string[] slashSplit = hyphenSplit[0].Split('/');

答案 2 :(得分:2)

基于明确捕获一个组的正则表达式解决方案:

String myText = "This/ is /a normal - test/ and quite - another/ test";

Regex regex = new Regex(@"[/]?\s*(?<part>[^-/]+[^-/\s])[^/]*[/]?", RegexOptions.ExplicitCapture);

var strings = regex.Matches(myText).Cast<Match>().Select(match => match.Groups["part"].Value);

Console.WriteLine(strings.Aggregate((str1, str2) => str1 + ">" + str2));

这将产生:

This>is>a normal>and quite>test

答案 3 :(得分:-1)

再次将其拆分为' - '

test[2] = test[2].Split('-')[0];