Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
 Аватар для dajver
411 / 275 / 22
Регистрация: 18.09.2010
Сообщений: 1,114

Массив регулярных выражений

05.11.2010, 16:13. Показов 3499. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать регулярное выражение которое бы считывало все теги и подтеги файла? Я делал вот такое -
C#
1
@"(?<=<.*>).*(?=</.*>)"
но оно считывает токо один тег, а дальше он воспринимает все как текст. Как сделать РВ что бы оно считывало теги как теги, а текст как тескт?

Да, и как сделать масив который бы читал весь файл, а не только одну строку?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.11.2010, 16:13
Ответы с готовыми решениями:

Ускорение выполнения регулярных выражений
Здравствуйте, прочитал про ускорение выполнения работы регулярных выражений...

Как оптимизировать применение регулярных выражений
Как оптимизировать следующий код? string a2 = Regex.Replace(x, p, @&quot;$4&quot;, RegexOptions.IgnoreCase); string a3 = Regex.Replace(x, p,...

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

10
Su
9 / 9 / 0
Регистрация: 09.10.2010
Сообщений: 22
06.11.2010, 01:09
что такое теги и под теги файла?
1
 Аватар для dajver
411 / 275 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
06.11.2010, 01:14  [ТС]
Цитата Сообщение от Su Посмотреть сообщение
что такое теги и под теги файла?
У меня есть html файл, в нем верстка, в верстке есть текст, есть теги, вот мне нужно вытащить текст из всех тегов какие токо есть в файле. Например: <table><tr><td>Тут текст</td></tr></table>.
0
Su
9 / 9 / 0
Регистрация: 09.10.2010
Сообщений: 22
06.11.2010, 01:29
Если через регулярки...надо подумать )


тут лучше через DOM делать, подключая mshtml; Третий нод будет текстовым.

Добавлено через 8 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        private static string strPatern = (@"\>(?<TextTeg>\w+)\<\/");
        private Regex rTextTeg = new Regex(strPatern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
        private Match m;
        private void Form1_Load(object sender, EventArgs e)
        {
 
 
            for (m = rTextTeg.Match(IMPUTHTML); m.Success; m = m.NextMatch())
            {
 
                if (m.Groups["TextTeg"].Length > 0)
                {
                    string sTemp = m.Groups["TextTeg"].Value;
                    MessageBox.Show(sTemp)
                }
 
            }
        }
1
 Аватар для dajver
411 / 275 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
06.11.2010, 12:11  [ТС]
Цитата Сообщение от Su Посмотреть сообщение
Если через регулярки...надо подумать )


тут лучше через DOM делать, подключая mshtml; Третий нод будет текстовым.

Добавлено через 8 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        private static string strPatern = (@"\>(?<TextTeg>\w+)\<\/");
        private Regex rTextTeg = new Regex(strPatern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
        private Match m;
        private void Form1_Load(object sender, EventArgs e)
        {
 
 
            for (m = rTextTeg.Match(IMPUTHTML); m.Success; m = m.NextMatch())
            {
 
                if (m.Groups["TextTeg"].Length > 0)
                {
                    string sTemp = m.Groups["TextTeg"].Value;
                    MessageBox.Show(sTemp)
                }
 
            }
        }

Пожалуйста поясни что делает каждая строчка)) а то я не могу разобраться.
0
Su
9 / 9 / 0
Регистрация: 09.10.2010
Сообщений: 22
06.11.2010, 13:04
Я для примера привел, я не думаю что ваш вопрос можно решить с использованием regexp.

>>private static string strPatern = (@"\>(?<TextTeg>\w+)\<\/");

Группа с именем TextTeg, должна содержаться между > и </, сама группа может содержать любые символы.

>>for (m = rTextTeg.Match(IMPUTHTML); m.Success; m = m.NextMatch())
IMPUTHTML - это текст вашего файла.
ну и далее происходит перебор тегов.
1
 Аватар для dajver
411 / 275 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
06.11.2010, 13:38  [ТС]
Цитата Сообщение от Su Посмотреть сообщение
Я для примера привел, я не думаю что ваш вопрос можно решить с использованием regexp.

>>private static string strPatern = (@"\>(?<TextTeg>\w+)\<\/");

Группа с именем TextTeg, должна содержаться между > и </, сама группа может содержать любые символы.

>>for (m = rTextTeg.Match(IMPUTHTML); m.Success; m = m.NextMatch())
IMPUTHTML - это текст вашего файла.
ну и далее происходит перебор тегов.
А теперь еще вопрос. Я пытаюсь подключить библиотеку mshtml; но оно её не видит, как бы пишет что такого нет. Как её можно найти/подключить?

IMPUTHTML я так понимаю отностится к библиотеке mshtml ? так как на нем то же ошибку выдает.
0
Su
9 / 9 / 0
Регистрация: 09.10.2010
Сообщений: 22
06.11.2010, 14:48
Да нет:-)

string IMPUTHTML = Данные вашего HTML файла.

Если вы собрались реализовать это через DOM, то доступ к интерфейсам можно получить добавив ссылку в проекте на mshtml + using mshtml в самомо проекте;
1
 Аватар для dajver
411 / 275 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
06.11.2010, 14:54  [ТС]
Цитата Сообщение от Su Посмотреть сообщение
Да нет:-)

string IMPUTHTML = Данные вашего HTML файла.

Если вы собрались реализовать это через DOM, то доступ к интерфейсам можно получить добавив ссылку в проекте на mshtml + using mshtml в самомо проекте;
Тогда все ясно, огромное спасибо, буду разбираться =))

Кстати using mshtml; не работает - The type or namespace name 'mshtml' could not be found (are you missing a using directive or an assembly reference?)
0
Su
9 / 9 / 0
Регистрация: 09.10.2010
Сообщений: 22
06.11.2010, 15:05
>>добавив ссылку в проекте на mshtml

Добавлено через 7 минут
Я посмотрел, паттер измените на такой:

private static string strPatern = (@"\>(\s+)?(?<TextTeg>[^\>\<]+)(\s+)?\<\/");
1
 Аватар для dajver
411 / 275 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
06.11.2010, 15:18  [ТС]
Цитата Сообщение от Su Посмотреть сообщение
>>добавив ссылку в проекте на mshtml

Добавлено через 7 минут
Я посмотрел, паттер измените на такой:

private static string strPatern = (@"\>(\s+)?(?<TextTeg>[^\>\<]+)(\s+)?\<\/");
Что то оно не считывает весь файл)))) А это регулярное записывает текст вместе с < и />. Но все равно спасибо за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.11.2010, 15:18
Помогаю со студенческими работами здесь

Преобразовать строку в рваный массив с помощью регулярных выражений
есть строка вида (1,1,'potato '),(2,2,'meat '),(3,3,'bean '),(4,4,'bean '),(5,5,'onions '),(6,1,'cheese '),(7,2,'canned food '),(8,3,'bean...

Использование регулярных выражений
Добрый День! Имеется строка в виде &lt;Symbol&gt;GRX/SPB&lt;/Symbol&gt; &lt;ContractPosition&gt;-100&lt;/ContractPosition&gt;...

Возможности регулярных выражений
привет. могут ли регулярные выражения такое? &quot;мы ехали 345 туда&quot; если слева цифр и справа совпадают с рег выражением то их заменить...

Классы регулярных выражений
После полного отчества пользователя вставить в скобках аббревиатуру из первой буквы его фамилии и инициалов, например: Иванов Иван Петрович...

Использование регулярных выражений
Вот задание - Дан текст и слово, вывести все слова из текста не абсолютно совпадающие с введенным словом. Вот всё что я сделал, вроде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru