我的表单上有一个文本框,其中包含任意文本字符串,例如"Hello 184;%88 World"
中输入的用户。
我有三个文本框,一个只显示输入的数字/数字,下一个只显示包含在字符串中的字母,最后一个文本框只显示字符串中的符号或特殊字符。
到目前为止,我已尝试使用For Each
语句循环遍历字符串但我对此并不满意所以我决定坚持使用VB.net的Regex类。以下是我可以在文本框中显示字符串中数字和数字的内容:
Private Sub ScanButton_Click(ByVal sender as System.Object, ByVal e As System.EventArgs) Handles ScanButton.Click
Dim TextEntry As String = StringBox.Text
Dim IntResult As Match = Regex.Match(TextEntry, "\d+")
Numbox.Text = IntResult.Value
End Sub
我已导入System.Text.RegularExpressions
例如,在我输入后:
“ashsjshsuie14568 hdidihgsib2822”
字符串中数字的文本框仅显示14568
省略2822
。
我不知道如何使字母中的字母和符号出现在各自的文本框中。
答案 0 :(得分:2)
你有正确的想法,但你可以有多个匹配,所以只获得Regex.Match
的结果将只返回第一个匹配。相反,如果您想使用匹配,请改用Regex.Matches
。
然而,更好的想法,可能是替换你不想要的字符串,而不是试图找到你做的那些:
Dim textEntry As String = StringBox.Text
Dim intResult As String = Regex.Replace(textEntry, "\D", "")
Dim letterResult As String = Regex.Replace(textEntry, "[^a-zA-Z]", "")
Dim symbolResult As String = Regex.Replace(textEntry, "[0-9a-zA-Z]", "")
在上面的示例中,intResult
删除了所有非数字字符(\D
类匹配的内容),letterResult
删除了除az之外的所有内容,symbolResult
删除了数字和字母。这应该产生你想要的东西。