2015-03-24 4 views
0

мне нужно разбить строку, как это:C# Разделить строку, которая содержит буквы и цифры

string mystring = "A2"; 
mystring[0] "A" 
mystring[1] "2" 

string mystring = "A11"; 
mystring[0] "A" 
mystring[1] "11" 

string mystring = "A111"; 
mystring[0] "A" 
mystring[1] "111" 

string mystring = "AB1"; 
mystring[0] "AB" 
mystring[1] "1" 

Моя строка всегда будет буква (ы), чем число (ы), так что мне нужно разбить его, когда буквы Конец. Мне нужно использовать номер только в этом случае.

Как я могу это сделать? Любое предложение?

Спасибо.

ответ

1

Вы можете использовать Regex

var parts = Regex.Matches(yourstring, @"\D+|\d+") 
      .Cast<Match>() 
      .Select(m => m.Value) 
      .ToArray(); 
1

Regex.Split сделает это легко.

string input = "11A"; 
Regex regex = new Regex("([0-9]+)(.*)"); 
string[] substrings = regex.Split(input); 
+0

OP писал письма, то цифры. Упрощенный для лучшего ответа, но для его кода потребуется обратное выражение регулярного выражения. –

+0

Привет ответ был прав, я редактировал его в то же время, когда он ответил. Моя вина. – KleberBH

0

Вы должны использовать регулярное выражение, чтобы сделать это:

string[] output = Regex.Matches(mystring, "[0-9]+|[^0-9]+") 
.Cast<Match>() 
.Select(match => match.Value) 
.ToArray(); 
Смежные вопросы