2015-04-08 2 views
0

Как удалить первые числовые символы из строки с помощью регулярных выражений? строка str = 20Be45;Как удалить начальные числовые символы из строки в C#

Выход -> Be45

+1

Вы удалили второй цифровой символ, а также. –

+0

да, это то, что я ищу. (начальные числовые символы) –

ответ

4

Это Regex

string text = "20Be45"; 
string replaced = Regex.Replace(text, "^[0-9]+", string.Empty); 

НО, я запрограммировал в течение 15 лет без использования регулярных выражений, и вы знаете, что? Я был happy, и мои программы работал.

int i = 0; 

while (i < text.Length && text[i] >= '0' && text[i] <= '9') 
{ 
    i++; 
} 

text = text.Substring(i); 
+0

char.IsNumber или char.IsDigit? –

+0

@JamesBarrass 'char.IsDigit', вероятно, лучше ... Но я очень старый, я все еще использую сравнение> = '0' <= '9', которое очень легко читать. (и имеет то преимущество, что он отлично читается, без необходимости думать, означает ли это цифра Unicode или цифра 0-9, как с дихотомией IsDigit/IsNumber) – xanatos

+3

[Regexp: теперь у вас есть две проблемы] (http: // blog. codinghorror.com/regular-expressions-now-you-have-two-problems/);) –

3

Это еще одно решение с использованием метода String.TrimStart:

string text = "20Be45"; 
string replaced = text.TrimStart('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); 
+0

Это мое предпочтительное решение этой проблемы. –

1

Другой, не Regex версия:

var text = "20Be45"; 
var result = string.Concat(text.SkipWhile(char.IsDigit));