2017-04-24 251 views
0

我做用分隔符「/」以下字符串的分裂 的問題是,在相同的字符串我有一個「-」字,就是想刪除它,我有有後的。分割字符串而忽略分隔符的字符?

輸入

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

輸出

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

在測試[2]應該是 「a」

+3

爲什麼會,爲什麼它不保留空間和「 - 測試「部分? – BugFinder

+0

目前這些信息與我無關 –

+1

「This/is/a - test/and - another/test'怎麼辦? –

回答

3

首先在-字符分割字符串。你說你要不顧一切之後,這麼走[0]指數結果數組並在那執行你的第二個字符串分割,分裂:/

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

再次分裂它「 - 」

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

這是否適合您?

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

基本上maccettura說什麼。

基於一組的顯式捕獲
+0

是的,我可以使用它。非常感謝你 –

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

相關問題