2016-11-11 4 views
1

bekam ich ein paar String in einer Liste.Wie erhält man die letzten und ersten Sonderzeichen einer Zeichenfolge?

List<string> mylist = new List<string>(); 
mylist.Add("_+hello[]_"); 
mylist.Add("_+how||"); 
mylist.Add("_+are,,"); 
mylist.Add("||you=_"); 
mylist.Add("_+doing\"_"); 

Ich möchte die letzten und ersten Sonderzeichen erhalten (+, _ [] = ") alle in in Array

string[,] array = new string[5,2] 

mein Array sollte so etwas wie dies am Ende aussehen:

_+ AND [] _ 
_+ AND || 
_+ AND ,, 
|| AND =_ 
_+ AND "_ 

Hat jemand weiß, wie dies zu tun

Vielen Dank im Voraus

+2

Was ist Ihnen bisher eingefallen? – BugFinder

+1

Dies macht keinen Sinn, wollen Sie das erste Zeichen, sondern wollen '_ +' zurück –

+2

Try 'Regex.Split (str, @ "[^ \ W _] +")' –

Antwort

3

Sie scheinen mit alphanumerischen Zeichen spalten zu wollen. Da \w Matches alphanumerische oder Zeichen unterstreichen, können Sie subtract die _ es Form und verwenden Sie es mit Regex.Split:

Regex.Split(str, @"[\w-[_]]+") 

Siehe this regex demo

Oder

Regex.Split(str, @"[^\W_]+") 

Hier ist ein regex demo

Das [^\W_] stimmt mit irgendwelchen überein char, das ist kein Nicht-Wort-char (das heißt, es entspricht \w) und nicht ein _ (so, alle \w außer _, die sonst übereinstimmen würde).

+0

Siehe [Online-C# -Demo] (http://ideone.com/Zdq25a). –

+0

Danke, das ist genau das, was ich wollte –

+0

Versuchen Sie einfach nicht "" + Hallo da + "' –

-2
List<string> mylist = new List<string>(); 
    mylist.Add("_+hello[]_"); 
    mylist.Add("_+how||"); 
    mylist.Add("_+are,,"); 
    mylist.Add("||you=_"); 
    mylist.Add("_+doing\"_"); 
    foreach (var item in mylist) 
    { 
     var LastItem=item.ToArray().Last(); 
     var FirstItem = item.ToArray().First(); 
    } 
Verwandte Themen