Страница: 1 |
Страница: 1 |
Вопрос: Регэкспы
Добавлено: 29.09.08 15:32
Автор вопроса: Arseny | ICQ: 298826769
запарился...
предположим имеется файл, в котором имеются следующие строки:
с помощью регэкспа проба[0-9]-(.*?)[,. ] разбиваю их на группы типа:
проба2-4a5b6c7d,
проба3-8a9b10c,
ммм... че ж я хотел спросить... вот:
как поменять регэксп, чтобы выдавались данные только между дефисом и запятой. так сказать регэксп из регэкспа...
Ответы
Всего ответов: 14
Номер ответа: 1
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #1
Добавлено: 29.09.08 15:41
не совсем так выразился: -(.*?)[,. ] не предлагать, ибо поиск нужен только для таких пар типа: проба1-1a2b3c
а вообще в файле могут быть и другие сочетания, которые не требуются, но тоже могут попасть под маску -(.*?)[,. ]
Номер ответа: 2
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #2
Добавлено: 29.09.08 18:45
Гм, насколько я помню после обработки текста получаем коллекцию найденных строк.
При этом для каждой строки имеется коллекция подстрок. В неё фигачатся куски строки заключенные в скобки. Так что по идее за счет этого (.*?) в подсроку у тебя записываются данные между дефисом и запятой.
Я сам с трудом понимаю, что написал)..
Номер ответа: 3
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #3
Добавлено: 29.09.08 19:14
Arseny, тут все ОК. Фишка в том, что ты использовал группировку... ()- это знак группировки. В результате в каждом совпадении у тебя будет 2 группы. Первая круппа(с индексом 0) - это все найденное выражение, а вторая группа(с индексом 1) - это то что в крыглых скобках.
В результате выполнения следующего кода:
Мы имеем результат:
1a2b3c
4a5b6c7d
8a9b10c
Номер ответа: 4
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #4
Добавлено: 30.09.08 01:05
Все верно, EROS.
Номер ответа: 5
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #5
Добавлено: 30.09.08 10:52
БОЛЬШОЕ спасибо всем. кажется я становлюсь мазохистом: меня начали прикалывать регэкспы....
Номер ответа: 6
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #6
Добавлено: 30.09.08 16:23
А почему именованные группы не используете? ИМХО так удобней.
проба\d-(?<blablabla>\w*?)[,. ]
aaa = match.Groups("blablabla".Value
И не нужно путаться с индексами.
Номер ответа: 7
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #7
Добавлено: 30.09.08 16:42
я через vb6. там вроде нет такого. или я ошибаюсь?
Номер ответа: 8
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #8
Добавлено: 30.09.08 17:13
Не знаю, не работал в vb6 с ними.
Номер ответа: 9
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #9
Добавлено: 30.09.08 22:13
Ты уже давно им стал, раз все еще продолжаешь писать на VB6. Более того, тебя с полной уверенностью можно назвать извращенцем!
Номер ответа: 10
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #10
Добавлено: 30.09.08 22:49
"не забывается такое никогда..." - слышал песенку? :P я консервативен. Ну а вообще - я живу не в мегаполисе, далеко не у всех стоят нормальные компы и системы иже с ними... писать под 98 на дотнете? Конечно преобладает XP, и, благодаря маркетингу M$ , все чаще встречается даже виста, но не в кайф начинать разбираться с языком, когда получен заказ и определены сроки. Мне вполне хватает шестерки.
Номер ответа: 11
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #11
Добавлено: 30.09.08 23:46
ой ну что за сказки? Я живе не в мегаполисе и вообще у нас только микрокалькуляторы продаются и счеты...
Я можно сказать живу в бабруйске, и тут нет и на намека на эти легендарные K5 и Pentium 133 и Altair.
Вопрос решается очень легко - типа беспроцентный кредит - и покупай хоть мощный ноут, Cray, лишь бы довез до дома.
Номер ответа: 12
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #12
Добавлено: 01.10.08 01:05
А самолет купить можно?
Номер ответа: 13
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #13
Добавлено: 01.10.08 02:05
Если банк даст тебе кредит - почему бы и нет?
Номер ответа: 14
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #14
Добавлено: 01.10.08 10:48
2Бранд: Жди в гости.
P.S. Я жаловался не на свой комп, а на те, с которыми приходится работать. Кстати P133 - полно.