以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  ZZT0063怎么把这个字符串分成 ZZT 0063 ?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=76459)

--  作者:aduydgd
--  发布时间:2015/10/29 16:11:00
--  ZZT0063怎么把这个字符串分成 ZZT 0063 ?
ZZT0063怎么把这个字符串分成 ZZT     0063  ?不能用LEFT,因为字母不固定

一句代码解决最好

--  作者:大红袍
--  发布时间:2015/10/29 16:14:00
--  
Dim str As String = "abcef001234"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "[a-zA-Z]+|[0-9]+")
For i As Integer = 0 To mc.count - 1
    msgbox(mc(i).value)
Next

--  作者:aduydgd
--  发布时间:2015/10/29 16:18:00
--  
数字分开后我加1就直接变成192了,而不是0192,这个怎么处理?
--  作者:aduydgd
--  发布时间:2015/10/29 16:25:00
--  
我的目的是在数据库中查找ID最大值,找到后加1,有没有更好的方法?

比如我数据找到:XAT0191
这个字符我希望加1得到:XAT0192

这个有什么好方法?

--  作者:大红袍
--  发布时间:2015/10/29 16:29:00
--  
Dim str As String = "abcef001234"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "[a-zA-Z0]+|[1-9]+")
If mc.count = 2 Then
    str = mc(0).value & mc(1).value + 1
    msgbox(str)
End If

--  作者:aduydgd
--  发布时间:2015/10/29 16:34:00
--  
完美解决
--  作者:e-png
--  发布时间:2015/10/29 17:05:00
--  

这样就有问题了吧:Dim str As String = "abcef00999" 


--  作者:大红袍
--  发布时间:2015/10/29 17:06:00
--  
那你就判断加1后字符长度是否变化。
--  作者:lsy
--  发布时间:2015/10/29 17:16:00
--  
为了美观,也为了留出足够的长度,编码的数字部分,一般是用0补齐固定的位数,本例假设是4位:

Dim str As String = "ZZT0063"
Dim s As String = CStr(CInt(Right(str,4)) + 1).PadLeft(4,"0")
Output.Show(s)