Как удалить неалфавитные символы из строки?

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

В основном я просто использую «Заменить» для каждого неалфавитного символа. Этот метод займет вечность.

Думаю, я мог бы создать массив (я думаю), но это все равно заняло бы довольно много времени. Есть ли какое-нибудь простое решение?

Dim wordy As String = textBox.Text.ToUpper.Replace(".", "").Replace("!", "").Replace(" ", "").Replace("'", "").Replace("?", "") _
        .Replace(",", "").Replace("-", "")

person user3081500    schedule 09.12.2013    source источник
comment
Извините, неправильный язык... упс. Попробуйте мой ответ ниже.   -  person Justin E    schedule 09.12.2013
comment
Вы можете просто использовать текстовое поле с маской, которое разрешает только числовой ввод на основе маски...   -  person Justin E    schedule 09.12.2013


Ответы (2)


Следующие строки кода должны помочь.

MsgBox(Regex.Replace(s, "[^a-zA-Z ]", ""))

Это сохранит только прописные/строчные буквы A-Z, а также пробелы.

Ваш пример,

Dim wordy As String = textBox.Text.ToUpper.Regex.Replace(s, "[^a-zA-Z ]", "")

Вы также можете просто использовать MaskedTextBox, который позволит вводить только числа на основе маски.

person Justin E    schedule 09.12.2013
comment
Не проверено, но должно помочь. - person Justin E; 09.12.2013

Это удалит все символы, кроме A-Z в нижнем и верхнем регистре, а также пробелы. Если вы хотите удалить пробелы, удалите пробел в конце регулярного выражения.

Dim rgx As New Regex("[^a-zA-Z ]")
Dim wordy As String = rgx.Replace(textBox.Text,"")
person damienc88    schedule 09.12.2013