我需要在字符串的某个长度为14之后和最后5个字符串之前得到一组值。
例如:
Theboyisgoingt9123holdi:所以我需要得到9123的价值 iamfullofmeats89holdi:我需要提取值89
所以这里的算法是,我试图提取字符串的第14个长度之后和同一个字符串的最后5个字符之前的值。 它总是在14和最后5个字符之间。
我在vb.net中编码。 任何想法都非常感激。
答案 0 :(得分:2)
Dim ResultString As String
ResultString = Regex.Match(SubjectString, "(?<=^.{14}).*(?=.{5}$)").Value
将为您提供字符串中第15个字符到第6个字符的字符。假设字符串中没有换行符。如果有,并且您希望像对待任何其他字符一样对待它们,请使用RegexOptions.Singleline
选项作为Regex.Match()
的附加参数。
说明:
(?<=^.{14})
:匹配字符串中第14个字符后面的位置。
.*
:匹配任何内容直到......
(?=.{5}$)
:...字符串中最后5个字符前的位置。
答案 1 :(得分:2)
我也会使用正则表达式。我就是这样做的:
Imports System.Text.RegularExpressions
Module Module1
Sub Main()
Dim str As String = "Theboyisgoingt9123holdi"
Dim m As Match = Regex.Match(str, "^.{14}(.+).{5}$")
If m.Success Then
Console.WriteLine(m.Groups(1).Value)
End If
End Sub
End Module
答案 2 :(得分:0)
这是使用正则表达式的好地方
Function GetNumber(ByVal str As String) As String
Dim match = Regex.Match("\d+", str)
if math.Sucess then
Return match.Value
Else
Return String.Empty
End If
End Function