2012-02-23 6 views
7

У меня есть текстовый файл для обработки, который содержит некоторые цифры. Я хочу текст JUST в нем, и ничего больше. Мне удалось удалить знаки препинания, но как удалить номера? Я хочу это использовать код C#.Удаление чисел из текста с помощью C#

Кроме того, я хочу удалить слова длиной более 10. Как это сделать с помощью выражений Reg?

+0

Как выглядит файл (пример ввода/вывода ???), и где код, который вы должны удалить пунктуацией? – Jon

+0

Не могли бы вы предоставить образцы данных в вашем файле? –

+0

Возможно, вы можете показать какой-то код, чтобы сообщество могло видеть, что вы пробовали? – Arion

ответ

27

Вы можете сделать это с помощью регулярных выражений:

string withNumbers = // string with numbers 
string withoutNumbers = Regex.Replace(withNumbers, "[0-9]", ""); 

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

[\w]{10, 100} 

100 определяет длину макс, чтобы соответствовать. Я не знаю, если есть квантор по длине мин ...

+1

Вот как бы я это сделал. Prachi - Вспомните дополнительную инструкцию по использованию System.Text.RegularExpressions, если у вас ее уже нет! – Bridge

+0

+1, непревзойденный ответ ... –

+0

Спасибо, отлично работал! – Cyang

3

только буквы и ничего (потому что я вижу, что вы также хотите, чтобы удалить знаки препинания)

Regex.IsMatch(input, @"^[a-zA-Z]+$");

1

Вы можете также использовать string.join:

string s = "asdasdad34534t3sdf43534"; 
s = string.Join(null, System.Text.RegularExpressions.Regex.Split(s, "[\\d]")); 
1

Regex.Replace метод должен сделать трюк.

// regex to match any digit 
var regex = new Regex("\d");      
// replace all matches in input with empty string 
var output = regex.Replace(input, String.Empty);