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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выделение строки с помощью регулярного выражения 
V
    Опции темы
Алексеу
Дата 2.2.2010, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здравствуйте!

Недавно начал использовать регулярные выражения, столкнулся с проблемой выделения строки в подстроке.

К примеру, с прока:
"У Васи были "хорошая" панама". 
В этой строке с помощью регулярного выражения нужно выделить подстроку "хорошая", чтобы затем ее подсветить (ASP.NET).

Не подскажите, как можно подсветить данную подстроку? 
Использовал что-то вроде:

Код

r = new Regex("\"*\"");
                       Match match = r.Match(tmp_return);
                       if (match.Success)
                       {
                           tmp = match.Value;
                       }


Без результата.

Буду очень признателен за подсказки.
PM MAIL   Вверх
Ceiceron
Дата 2.2.2010, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



В самом простом варианте регулярное выражение может выглядеть так:
Код

\"хорошая\"

собственно всегда можно подставить непосредственно нужное слово как шаблон поиска.
в более универсальном (для кирилицы):
Код

\"[0-9а-яА-Я]+\"

а вообще есть хороший сайт для отлади регулярок
PM MAIL   Вверх
Алексеу
Дата 2.2.2010, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



На [0-9а-яА-Я] оно отрабатывает, однако, нужно чтобы внутри строки могли быть любые символы, скажем < или & и т.д. Задача просто выделить все подстроки "..." из общей строки. Как можно поступить в этом случае?
PM MAIL   Вверх
Ceiceron
Дата 2.2.2010, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Усложнить регулярное выражение  smile 
Почитайте о них в википедии например или если английский в норме, то здесь

з.Ы. воспользуйтесь поиском по форуму, тут уже было много вопросов о написании регулярных выражений.

Это сообщение отредактировал(а) Ceiceron - 2.2.2010, 12:53
PM MAIL   Вверх
Алексеу
Дата 2.2.2010, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



К примеру, получается:

("^\"\"$");

Т.е. ^\" - Строка начинается на "
и тут же пишу
\"$ - строка заканчивается на "

Вроде бы по логике все корректно, но не отрабатывает.
PM MAIL   Вверх
Ceiceron
Дата 2.2.2010, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Возьмите сайт для отладки регулярок, что я посоветовал (работает в IE, нужно Java поставить на машину, если попросит).
и попробуйте разобрать свое выражение.
Код

("^\"\"$");

так работать не будет  smile  у вас же строка не начинается с кавычек, вообще ваше слово в середине текста.

з.ы. прочтите все-таки статью в википедии.
PM MAIL   Вверх
Heinzz
Дата 2.2.2010, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 3
Всего: 9



Цитата(Алексеу @  2.2.2010,  12:44 Найти цитируемый пост)
На [0-9а-яА-Я] оно отрабатывает, однако, нужно чтобы внутри строки могли быть любые символы, скажем < или & и т.д. Задача просто выделить все подстроки "..." из общей строки. Как можно поступить в этом случае? 

Код

            string input = @"Мама мыла ""раму"" с мылом";
            string reg = @"\""(.*)\""";
            string result = Regex.Match(input, reg).Value;
            Console.WriteLine(result);



--------------------
user posted image
PM MAIL   Вверх
Алексеу
Дата 3.2.2010, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Большое спасибо!
Так отработало!
PM MAIL   Вверх
forumspy
Дата 7.2.2010, 04:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Алексеу @ 3.2.2010,  16:47)
Большое спасибо!
Так отработало!

  Подскажите, а какой именно вариант сработал.
PM MAIL   Вверх
Ceiceron
Дата 7.2.2010, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



forumspy,  smile 
очевидно последний.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

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


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

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


 




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


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

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