Страница: 1 |
Страница: 1 |
Вопрос: Два вопроса по Regex
Добавлено: 31.08.06 15:28
Автор вопроса: Sergey
Dim pr = reg.Match(s).Groups("pref1").Value
При отсутсиии совападений возвращается пустая строка.
1) Как, если возможно, вместо пустой строки возвращать Nothing?
2) Как задать значения (ABT|AFT|BEF|BET|CAL|EST|FROM|TO), считывая их из таблицы?
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
Viper
ICQ: 249094859
Вопросов: 0
Ответов: 310
Профиль | | #1
Добавлено: 01.09.06 12:32
1. Никак. Ну или преобразовать пустую строку в Nothing. З.Ы. а с пустой строкой не проще работать чем с Nothing?
2. Откуда считывать конкретно? Ибо фраза "считывая их из таблицы" очень уж расплывчата.
Номер ответа: 2
Автор ответа:
Sergey
Вопросов: 15
Ответов: 55
Профиль | | #2
Добавлено: 01.09.06 13:40
1. Жаль. С пустой строкой не работает DataRelation
2. Спасибо, разобрался.
Номер ответа: 3
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #3
Добавлено: 02.09.06 19:12
Dim reg As Regex = New Regex("^(?<pref1>ABT|AFT|BEF|BET|CAL|EST|FROM|TO))$"
Dim match As Match = reg.Match(s)
If match Is Nothing Then
'облом
Else
 im text as String = match.Groups("pref1".Value
End If
Это в случае если искомая строка - это одно из
ABT|AFT|BEF|BET|CAL|EST|FROM|TO и ничего больше. Т.е. сработает для
строки "AFT", но не сработает для "foo AFT bar".
Номер ответа: 4
Автор ответа:
Sergey
Вопросов: 15
Ответов: 55
Профиль | | #4
Добавлено: 03.09.06 21:17
Павел, спасибо!
Вы дали хорошее решение.
В примере одна группа и все ОК.
Для нескольких групп, наверное, проще преобразовывать пустые строки в Nothing?
Номер ответа: 5
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #5
Добавлено: 03.09.06 21:21
А что вы имеете в виду под двумя группами? Можно на примере?
Номер ответа: 6
Автор ответа:
Sergey
Вопросов: 15
Ответов: 55
Профиль | | #6
Добавлено: 04.09.06 06:55
Регулярное выражение:
Группы:
Dim date1 = reg.Match(s).Groups("date1".Value
Dim pref2 = reg.Match(s).Groups("pref2".Value
Dim date2 = reg.Match(s).Groups("date2".Value
Я делаю так:
If pref2 = "" Then pref2 = Nothing
If date1 = "" Then date1 = Nothing
If date2 = "" Then date2 = Nothing
Номер ответа: 7
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #7
Добавлено: 04.09.06 07:20
Да, вобщем-то правильно... Только вот так никогда не делайте:
Всегда надо указвать тип переменных. Всегда.
Номер ответа: 8
Автор ответа:
Sergey
Вопросов: 15
Ответов: 55
Профиль | | #8
Добавлено: 04.09.06 08:06
Спасибо, учту.