在word之前和之后获取字符串

时间:2010-10-21 20:44:34

标签: vb.net string

我需要在字符串的某个长度为14之后和最后5个字符串之前得到一组值。

例如:

Theboyisgoingt9123holdi:所以我需要得到9123的价值 iamfullofmeats89holdi:我需要提取值89

所以这里的算法是,我试图提取字符串的第14个长度之后和同一个字符串的最后5个字符之前的值。 它总是在14和最后5个字符之间。

我在vb.net中编码。 任何想法都非常感激。

3 个答案:

答案 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