我有一个包含数据的文本框。
"data": "100005337941637",
"data": "100004464150724",
etc..
我只想要数字(“100005337941637”)。
我的代码对我来说几乎不错,但指定的不够。
For Each m As Match In New Regex("\d+").Matches(TextBox1.Text)
TextBox2.Text &= m.Value & Environment.NewLine
Next
我可以过滤我的号码吗? 如果我的数字是10-15位数,那么它没关系,如果没有,那么它将被删除。
实施例: 100005337941637 -okay 100004464150724 - 好的 1043434 - 没关系
谢谢。
答案 0 :(得分:0)
几乎就在那里,试试"[\d]{10,15}(?=[""])"
这匹配最小长度为10但不大于15的任何数字位数。然后最后检查模式中的最后一位数字后跟引号"
,因为这意味着它是最后一位数字字符串。
或者,你可以修改这样的东西(未经测试):
For Each xVar In Split(TextBox1.Text, vbCrLf)
For i = 1 To Len(xVar)
If IsNumeric(Mid(xVar, i, 1)) Then xStr = xStr & Mid(xVar, i, 1)
Next i
If Len(xVar) > 9 And Len(xVar) < 16 Then MsgBox(xVar.ToString)
xStr = vbNullString
Next xVar