我想提取一个文本框的一部分到另一个文本框。因此,我有两个文本框,即txtuser和txtpassword。当扫描QR时,选择txtuser会自动将扫描结果分为txt.user和txtpassword。
谢谢
'This is the result of the QR barcode scanner
USERNAME : TEST-PASSWORD : TEST@123
'so the result I want
txtuser.txt = TEST
txtPassword.txt = TEST@123
'code in keypress
Private Sub txtUser_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtUser.KeyPress
Const pattern As String = "USERNAME : (\S+)-PASSWORD : (\S+)"
If e.KeyChar = ChrW(8) Then
Dim m As Match = Regex.Match(txtUser.Text, pattern)
If m.Success Then
e.KeyChar = ControlChars.Back
txtUser.Text = m.Groups(1).Value
txtPassword.Text = m.Groups(2).Value
Else
'TODO: display some message
End If
End If
End Sub
来自@OlivierJacotDescombes的答案更新截图
screenshot breakpoint
enter image description here
如果我使用的代码更新刚才然后在“txtuser”的完整结果的扫描出现然后我按下后退空间然后它会自动成为每个根据文本框
2条答案
按热度按时间des4xlb01#
可以使用正则表达式:
控制台输出:
正则表达式模式
USERNAME : (\S+)-PASSWORD : (\S+)
的解释:(\S+)
捕获组1和组2,组1和组2至少匹配一个非空格字符作为用户名和密码。使用文本框:
dgenwo3n2#
除了@OlivierJacot-Descombes伟大的回答,你还可以拆分字符串
这就要求字符
-
和:
不能在用户名和密码中使用。你可以看到它创建了一个不是那些字符的项目的可枚举数,所以你只需要为合适的字符串索引。用户名
测试
密码
测试@123