Member 14122214 Ответов: 2

Как извлечь весь алфавит из строки, содержащей буквенно-цифровые данные в VB.NET


Привет, ребята, поэтому у меня есть текстовое поле, в которое пользователь будет вводить буквенно-цифровой код, однако база данных, которую я буду использовать для хранения данных, будет зависеть от алфавитного кода только внутри этого буквенно-цифрового кода. Не могли бы вы помочь мне, как начать с этого, пожалуйста?

То есть код, введенный в textbox1, - MSE001243, мне нужно извлечь MSE и поместить его на метку, которую я могу использовать для доступа к соответствующей базе данных.

Спасибо!

Что я уже пробовал:

Я видел видел валидации но не извлечения в интернете :(

2 Ответов

Рейтинг:
12

Sander Rossel

Вы можете перебирать символы в строке и использовать Char.Островок, чтобы проверить, является ли символ буквой.
Используя расширение Where и строковый конструктор, который принимает массив Char, код будет выглядеть следующим образом.

Dim letters = "MSE001243".Where(Function(c) Char.IsLetter(c)).ToArray()
Dim word = New String(letters)
' word is now MSE
Кроме того, вы можете использовать свой заранее определенный набор символов и использовать вместо него Contains.
Dim allowed = "abcde...ABCDE..."
Dim letters = "MSE001243".Where(Function(c) allowed.Contains(c)).ToArray()


Maciej Los

5ed!

Member 14122214

Dim letters = "MSE001243".Where(Function(c) Char.IsLetter(c)).ToArray()
Dim word = New String(letters)
' word is now MSE 


это сработало как шарм, как я могу изменить "MSE001243" на textbox1.tex? я попробовал использовать
"& textbox1.text &".Where(Function(c) Char.IsLetter(c)).ToArray() 


но это не работает, так как мне нужно, чтобы система получила букву того, что я набираю в textbox1.text

Member 14122214

попытался с помощью этого, а также

 Dim sample As String = TextBox1.Text
        Dim letters = sample.Where(Function(c) Char.IsLetter(c)).ToArray()
        Dim word = New String(letters)
        Label3.Text = word 


но и не работает

Sander Rossel

Это должно сработать, если предположить, что TextBox1 и Label3 являются правильными текстовым полем и меткой.
Что не работает?
Вы получаете ошибку?

Member 14122214

извини, я только что пропустил звонок своей личной Сабы на это мероприятие, ха-ха.- теперь все работает, спасибо!

Sander Rossel

Это случается с лучшими из нас! :)

Member 14122214

конечно, есть :D Спасибо!

Рейтинг:
1

OriginalGriff

Используйте регулярное выражение:

Dim input As String = "MSE001243, i need"
Dim output As String = Regex.Replace(input, "[^a-zA-Z]", "")


Sander Rossel

"Некоторые люди, столкнувшись с проблемой, думают: "Я знаю, я буду использовать регулярные выражения." Теперь у них две проблемы." - Джейми Завински :)
Но это вполне приемлемое решение.

OriginalGriff

Maciej Los

5ed!