Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.09.2012, 10:47   #1
Claster
Форумчанин
 
Аватар для Claster
 
Регистрация: 02.09.2008
Сообщений: 340
По умолчанию RegEx - убрать лишнее из строки

Всем привет.

В файле есть текст примерно такой
Text1_Text2_Text3.Text4.Text5(Text6 =Text7, Text8=Text9, Text10=Text11) Text12:Text13:Text14 {Text15}

Интересует выбрать
Text4, Text5, Text12, Text13, Text14, Text15

пока удалось извлечь Text3 и Text4

const string PathFile = @"C:\File.txt";

Код:
        var sr = new StreamReader(PathFile);
 
        while (sr.Peek() >= 0)
        {
            string input = sr.ReadLine();
            string pattern = @"(\.)";
 
            string[] substring = Regex.Split(input, pattern);
 
            Text3  = substring[2].ToString();
            Text4 = substring[4].ToString().Split('(')[0];
        }
        sr.Close();
Цитата:
- Только сисадмин может попросить у начальства 20$ на память...
Claster вне форума Ответить с цитированием
Старый 18.09.2012, 17:38   #2
Claster
Форумчанин
 
Аватар для Claster
 
Регистрация: 02.09.2008
Сообщений: 340
По умолчанию

никто не в курсе?
Цитата:
- Только сисадмин может попросить у начальства 20$ на память...
Claster вне форума Ответить с цитированием
Старый 18.09.2012, 20:13   #3
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Пробуй так
Код:
string input = "Text1_Text2_Text3.Text4.Text5(Text6=Text7, Text8=Text9, Text10=Text11) Text12:Text13:Text14 {Text15}";
string[] substring = input.Split('_', '.', '(', '=', ',', ')', ':', '{','}');
string text4 = substring[3];
string text5 = substring[4];
string text12 = substring[11];
string text15 = substring[14];
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 19.09.2012, 11:55   #4
Claster
Форумчанин
 
Аватар для Claster
 
Регистрация: 02.09.2008
Сообщений: 340
По умолчанию

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

Text1_Text2_Text3.Text4.Text5(Text6 =Text7, Text8=Text9, Text10=Text11, Text12=Text13) Text14:Text15:Text16 {Text17}

и т.д могут добавлять данные в скобках(их может быть произвольно кол-во там)


То данный код уже не сработает =(, по этому я и пытался использовать Регуляры
подскажите как быть пожалуйста.....

Вообщем получается мне надо 1.что идет после первой точки 2. что идет после второй точки 3.То что идет после ) 4. то что идет в {}
Цитата:
- Только сисадмин может попросить у начальства 20$ на память...

Последний раз редактировалось Claster; 19.09.2012 в 12:54.
Claster вне форума Ответить с цитированием
Старый 19.09.2012, 14:42   #5
Claster
Форумчанин
 
Аватар для Claster
 
Регистрация: 02.09.2008
Сообщений: 340
По умолчанию

Подобрал приблизительный шаблон для регуляра

содержимое: Text_Text_V3.Text.Text(Text=Text, Text=Text) Text:Text:Text {Text}

Код:
string pattern = @"(V3\.)|(\D\.)|(\))|(\{)";
Осталась одна проблема, теряется последний символ в Text_Text_V3.Text.Text(Text=Text, Text=Text) Text:Text:Text {Text}

из-за использования (\D\.)

Код:
Text1 = substring[2].ToString();
            Text2 = substring[4].Split('(')[0];
            Text3 = substring[6].Substring(1,8);
            Text4 = Convert.ToInt32(substring[8].Split('}')[0]);
Цитата:
- Только сисадмин может попросить у начальства 20$ на память...
Claster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Убрать лишнее pruf PHP 24 06.09.2011 19:06
Нужно убрать лишнее!!! Less1 Помощь студентам 10 26.06.2011 19:15
ColorBox - убрать лишнее MyLastHit Общие вопросы Delphi 1 08.12.2010 08:49
Убрать лишнее Айдар Общие вопросы C/C++ 1 17.09.2010 01:08
Убрать лишнее из ячейки. `Dmitry Microsoft Office Excel 8 24.03.2009 19:07