получить строку после и до слова - PullRequest
2 голосов
/ 22 октября 2010

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

Например:

Theboyisgoingt9123holdi: поэтому мне нужно получить значение 9123 iamfullofmeats89holdi: мне нужно извлечь значение 89

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

Я кодирую в vb.net.Любые идеи приветствуются.

Ответы [ 3 ]

2 голосов
/ 22 октября 2010
Dim ResultString As String
ResultString = Regex.Match(SubjectString, "(?<=^.{14}).*(?=.{5}$)").Value

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

Пояснение:

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

.*: сопоставить что угодно до ...

(?=.{5}$): ... позиция перед последними 5 символами в строке.

2 голосов
/ 22 октября 2010

Я бы тоже пошел с регулярным выражением. Вот как бы я это сделал:

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
0 голосов
/ 22 октября 2010

Это отличное место для использования регулярного выражения

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...