这将是您的正则表达式,它将匹配带有一组字母后跟一组数字的任何内容。
Public Dim regex As Regex = New Regex( _
"^(?<prefix>.*?0*)(?<version>\d+)$", _
RegexOptions.IgnoreCase _
Or RegexOptions.CultureInvariant _
Or RegexOptions.Compiled _
)
它将包含两个命名的捕获组,“前缀”是初始字符,“版本”是您的版本。
将版本转换为 int,递增,并通过连接前缀和新版本返回新版本号。
所以,你最终会得到这样的东西
Public versionRegex As Regex = New Regex( _
"^(?<prefix>.*?0*)(?<version>\d+)$", _
RegexOptions.IgnoreCase _
Or RegexOptions.CultureInvariant _
Or RegexOptions.Compiled _
)
Public Shared Function GetNextVersion(oldVersion As String) As String
Dim matches = versionRegex.Matches(oldVersion)
If (matches.Count <= 0) Then
Return oldVersion
End If
Dim match = matches(0)
Dim prefix = match.Groups.Item("prefix").Value
Dim version = CInt(match.Groups.Item("version").Value)
Return String.Format("{0}{1}", prefix, version + 1)
End Function