Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Считать массив регэкспами 
:(
    Опции темы
Competitor
Дата 24.8.2007, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 23.3.2005
Где: Tula

Репутация: -1
Всего: -1



Всем привет.
Есть к примеру строка: "value0, value1, (value2,value3,value4....)"
Как мне выдернуть отсюда все значения?
Значений в скобках может быть сколько угодно и нужно выдрать их в массив.
Начал делать так:
Код

"(.*?(?<firstvalue>.*?), (?<secondValue>.*?), ().*?)"

Но вот вопрос, как получить все значения из скобок, ведь зараннее не известно, сколько их.
Спасибо.
PM MAIL WWW   Вверх
SpaceSpace
Дата 24.8.2007, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 10.4.2007
Где: Самара

Репутация: 2
Всего: 10



для скобки еще одно рег-выражение.
т.е сначала первым выражением парсиш строку, вторым - скобки


--------------------
Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение.
70-565
MCPD Enterprise 3.5 
PM MAIL   Вверх
Competitor
Дата 24.8.2007, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 23.3.2005
Где: Tula

Репутация: -1
Всего: -1



Цитата

для скобки еще одно рег-выражение.
т.е сначала первым выражением парсиш строку, вторым - скобки

А как сделать всё в одном выражении?
PM MAIL WWW   Вверх
SpaceSpace
Дата 24.8.2007, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 10.4.2007
Где: Самара

Репутация: 2
Всего: 10



а никак, только рекурсивно - выражение одно и тоже ведь остается
вот и ишеш рекурсией до скобок, потом в скобках 
(ведь в скобках тоже могут быть скобки)
так целые деревья получаются
массивы массивов


--------------------
Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение.
70-565
MCPD Enterprise 3.5 
PM MAIL   Вверх
tol05
Дата 24.8.2007, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 63
Всего: 170



А простой вариант типа 
Код

string s = "value0, value1, (value2,value33,(value230,value65), value4....)";
Regex r = new Regex(@"value\d*");
MatchCollection m = r.Matches(s);

не подойдет? smile


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Competitor
Дата 24.8.2007, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 23.3.2005
Где: Tula

Репутация: -1
Всего: -1



tol05, да нет smile
Важно после парсинга знать, что было получено из скобок, а что нет
PM MAIL WWW   Вверх
SpaceSpace
Дата 24.8.2007, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 10.4.2007
Где: Самара

Репутация: 2
Всего: 10



неа
value - это для примера,
на самом деле скорее всего значения не обязаны содержать Value в начале,

хотя....
если будет какой либо символ, означающий начало значения - проблема решена
в одном случае это - начало строки(^), в другом - запятая(,), в третьем скобка( ( )
- ставьте плюс  smile 

Это сообщение отредактировал(а) SpaceSpace - 24.8.2007, 13:27


--------------------
Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение.
70-565
MCPD Enterprise 3.5 
PM MAIL   Вверх
Idsa
Дата 24.8.2007, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 14
Всего: 62



Цитата(SpaceSpace @  24.8.2007,  13:26 Найти цитируемый пост)
- ставьте плюс

Кому?


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
SpaceSpace
Дата 24.8.2007, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 10.4.2007
Где: Самара

Репутация: 2
Всего: 10



шучу я так  smile 


--------------------
Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение.
70-565
MCPD Enterprise 3.5 
PM MAIL   Вверх
tol05
Дата 24.8.2007, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 63
Всего: 170



Очень интересно...
Цитата(Competitor @  24.8.2007,  13:24 Найти цитируемый пост)
Важно после парсинга знать, что было получено из скобок, а что нет

а зачем? Как я понял, тебе нужно 

Цитата(Competitor @  24.8.2007,  11:39 Найти цитируемый пост)
Как мне выдернуть отсюда все значения?Значений в скобках может быть сколько угодно и нужно выдрать их в массив.
 в один единственный массив и чтоб все value там были, в скольких бы скобках (или совсем без скобок) они бы не были...

непонятно....


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1522 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.