2010-10-21 2 views
2

Мне нужно получить набор значений после определенных 14 длин строки и до последних 5 строк.получить строку после и перед словом

например:

Theboyisgoingt9123holdi: так что мне нужно, чтобы получить значение 9123 iamfullofmeats89holdi: мне нужно извлечь ценность 89

поэтому алгоритм здесь есть, я пытаюсь извлечь значения, что приходит после того, как 14-й длины строки и непосредственно перед последними 5 символами одной и той же строки. его всегда между четырьмя и последними 5 символами.

Я кодирую в vb.net. любые идеи очень ценятся.

ответ

2
Dim ResultString As String 
ResultString = Regex.Match(SubjectString, "(?<=^.{14}).*(?=.{5}$)").Value 

даст вам символы с 15-го до 6-го до последнего символа в строке. Предполагается, что в строке нет новых строк. Если есть, и вы хотите относиться к ним точно так же, как и любой другой символ, используйте опцию RegexOptions.Singleline в качестве дополнительного параметра для Regex.Match().

Объяснение:

(?<=^.{14}): матч позицию, которая после 14-го символа в строке.

.*: матч ничего до ...

(?=.{5}$): ... положение до последних 5 символов в строке.

+0

это именно то, что я искал. большое спасибо!!! – NULL

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 
+0

спасибо, но я забыл упомянуть, мои оригинальные строки могут представлять собой смесь строк и чисел: Theboyisgoingt9123holdi или 012boyisgoingt9123holdi или Theboyisgoingt9123ho555 или Theboyisg123gt9123holdi. Благодарю. – NULL

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