Пропустите значение richtextbox, если оно не существует
Первоначально Ричард помог мне с первой частью моей проблемы, которая заключалась в разборе данных richtextbox.
вот код:
Dim rows() As String = Regex.Split(RichTextBox1.Text, "^\r?$", RegexOptions.Multiline) Dim pattern As New Regex("^\s*(?<label>[^:]+)\s*:\s*(?<value>.+)\s*\r?$", RegexOptions.Multiline) For Each row As String In rows Dim lastName As String = Nothing, firstName As String = Nothing, race As String = Nothing, sex As String = Nothing Dim matches As MatchCollection = pattern.Matches(row) For Each match As Match In matches Dim label As String = match.Groups("label").Value If String.Equals(label, "last Name", StringComparison.OrdinalIgnoreCase) Then lastName = match.Groups("value").Value ElseIf String.Equals(label, "First Name", StringComparison.OrdinalIgnoreCase) Then firstName = match.Groups("value").Value ElseIf String.Equals(label, "Race", StringComparison.OrdinalIgnoreCase) Then race = match.Groups("value").Value ElseIf String.Equals(label, "Sex", StringComparison.OrdinalIgnoreCase) Then End If Next
Я пытался работать над 2-й частью моей проблемы. Теперь, чтобы заставить процесс пропустить значение, если его нет.
Итак, допустим, у меня есть -
Имя: Джефф
фамилия: Джонс
Раса: B
Имя: Стив
фамилия: need
Имя: Лэнс
Пол: М
Гонка: W
вы можете видеть, что в этих примерах есть другие поля, которых нет у других. Я хочу пропустить информацию, которой нет, возможно, даже поставить пустую строку "" просто для того, чтобы продвинуть процесс вперед.
Что я уже пробовал:
Я попробовал значение =
Match.Empty.ValueЯ пытался использовать команду skip, но я просто продолжаю получать нулевую ошибку ссылки.
Member 11856456
Я до сих пор не понял этого, но я читаю о match.success, я пытаюсь понять, как реализовать его в текущем коде, что если конкретный раздел не соответствует, то пропустите его.
Richard Deeming
Если одна из меток не существует, переменная будет Nothing
. Если вы хотите использовать вместо этого пустую строку, просто замените четыре = Nothing
операторы инициализации с = String.Empty
.
Member 11856456
Я попробовал использовать оператор else.
Если Строка.Equals (label," last Name", StringComparison.OrdinalIgnoreCase), То
фамилия = совпадение.Значение группы").Ценность
ещё
фамилия = строка. пусто
ошибка по-прежнему говорит, что ей нужен параметр @lastname.
Member 11856456
Я тоже пробовал этот метод:
ElseIf String.IsNullOrEmpty ("фамилия") Затем
фамилия = ничего
все еще получаю ошибку параметра