如何从字符串中删除非字母字符?

时间:2013-12-09 04:24:49

标签: vb.net

我正在寻找一种方法来删除任何不是字母字符的字符串中的字符。

我基本上只是为每个非字母字符使用Replace。这种方法需要永远。

我想我可以制作一个阵列(我想),但这还需要一段时间。有没有简单的解决方案?

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

2 个答案:

答案 0 :(得分:5)

以下代码行应该有所帮助。

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

这将仅保留大写/小写A-Z以及空格。

你的例子,

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

您也可以使用 MaskedTextBox ,只允许基于蒙版的数字输入。

答案 1 :(得分:1)

这将删除除小写和大写A-Z之外的所有字符以及空格。如果要删除空格,请从正则表达式的末尾删除空格。

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