Получение строковых элементов вокруг заданной строки символов?

#vb.net

#vb.net

Вопрос:

Хорошо, я нахожусь в последней части этой части моего проекта… Если у меня есть строки, подобные:

  James Williams 432 Co Rd 1 Cullman Al 35055
 Or     
 James Williams 432 Co Rd 12 Cullman Al 35055 
 Or
 James Williams 432 Co Rd 123 Cullman Al 35055 
 Or
 James Williams 432 Co Rd 1234 Cullman Al 35055 
  

какие эти числа могут быть любыми от 0 до 9.. Как я могу присвоить CR и число (числа) сразу после строкового значения????

Мне нужно проанализировать адресную информацию из файла… Анализатор отлично работает для адресов, которые не содержат CR, что означает окружную дорогу. Итак, я думаю, что могу удалить адресную часть из строки, которую я передаю в анализатор, используя что-то вроде..

   Dim _holder as string = {Gets a value I can track already in the current Function}
  DIM _Address as string = Nothing
  IF _holder.contains("Co Rd") Then
      _Address = { "Numbers just before Co Rd"   " "   "Co Rd"   "Numbers Just after Co Rd"}
  End If
  

Комментарии:

1. Я не могу расшифровать это. Что вы пытаетесь сделать? Можете ли вы опубликовать до и после или что-то в этом роде. Кстати, что вы пробовали?

2. @LarsTech: Похоже, он хочет регулярное выражение.

Ответ №1:

Многое зависит от того, насколько достоверны ваши данные, но вот краткий пример:

 Private Function ExtractAddressWithCoRd(ByVal input As String) As String
  Dim add1 As String = String.Empty
  Dim add2 As String = String.Empty

  Dim parts() As String = input.Split(" "c)
  For i As Integer = 0 To parts.Length - 1
    If parts(i) = "Co" AndAlso i > 0 Then
      add1 = parts(i - 1)
    ElseIf parts(i) = "Rd" AndAlso i < parts.Length - 1 Then
      add2 = parts(i   1)
    End If
  Next

  Return add1   " Co Rd "   add2
End Function
  

Комментарии:

1. это не работает, говорит, что объект не установлен для экземпляра объекта. Когда он попадает в Dim parts() как string = input . Split (» «c) есть идеи???

2. @Skindeep2366 Какое значение вы передаете для ввода? Убедитесь, что это не нулевое значение из вашего вызывающего источника.