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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ПОмогите с регулярными выражениями, Снова вырезать из строки 
:(
    Опции темы
Riccon
Дата 19.11.2005, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Помогите, плиз, запарился уже совсем.

Вот строка:
Код

string str = "<d_0_3>Произв. текст</d_0_3>  <aaa> text </aaa><d_10_300>Произв. текст</d_10_300>";

Нужно вырезать теги типа <d_0_3> text </d_0_3>. Начинается всегда "d_", цифр после символов подчёркивания может быть несколько. Теги нужно вырезать вместе с текстом, который они окружают.

ПОмогите, горю.


PM MAIL   Вверх
mr.DUDA
Дата 19.11.2005, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Что значит "вырезать" ? Заменить на др. текст ? Убрать, т.е. заменить на пустую строку ? Получить список тэгов <d_...> в виде массива значений ?


--------------------
user posted image
PM MAIL WWW   Вверх
Riccon
Дата 19.11.2005, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Да, действиельно... Удалить.
PM MAIL   Вверх
mr.DUDA
Дата 20.11.2005, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Вот, лови:
Код
using System;
using System.Text.RegularExpressions;

namespace ConsoleApplication1
{
    class Class1
    {
        static void Main()
        {
            string str = "<d_0_3>Произв. текст</d_0_3> <aaa> text </aaa><d_10_300>Произв. текст</d_10_300> bbb <a_04>xcvxcv</a_04>";
            string str2 = new Regex(@"<d_(\d|_)*>.*?<\/d_(\d|_)*>").Replace(str, string.Empty);

            Console.WriteLine("Было :" + str);
            Console.WriteLine("Стало :" + str2);
        }
    }
}



--------------------
user posted image
PM MAIL WWW   Вверх
Riccon
Дата 21.11.2005, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Пасибо огромное.
Если можно, прокомментируте вот это выражение:<d_(\d|_)*>
Не совсем понятно, каую роль играют скобки.
PM MAIL   Вверх
mr.DUDA
Дата 21.11.2005, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Охотно поясняю:

1) <d_ - это начало твоего тега
2) (\d|_) - означает любой вариант: цифровой символ, или знак подчёркивания
3) звёздочка после круглых скобок - это значит, что предыдущий символ (им считается то, что было в круглых скобках) повторяется сколько угодно раз
4) последний символ - конец тега; звёздочка будет "действовать" пока не встретится этот символ


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


Шустрый
*


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

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



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

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


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

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


 




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


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

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