Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/16: Рейтинг темы: голосов - 16, средняя оценка - 4.63
 Аватар для ImAlexSmith
325 / 114 / 7
Регистрация: 01.05.2011
Сообщений: 283
Записей в блоге: 3

Регулярные выражения для выделения нескольких строк

23.08.2011, 14:35. Показов 3346. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо выделить все, что находится между Public Class и End Class, что это было совпадение. Какой необходим шаблон, чтобы несколько строк входили в него?

VB.NET
1
2
3
4
5
6
7
8
9
Public Class Form1
    Private aaa As String = "aaa"
    Private bbb As String = "bbb"
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MsgBox(aaa + vbCrLf + bbb)
        Close()
    End Sub
End Class
пробывал "/sPublic Class .* End Class" - не работает
а "/sPublic Class .{267} End Class" - работает почему-то... но мне так не надо, надо универсально
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.08.2011, 14:35
Ответы с готовыми решениями:

ЧПУ. Замена строк, регулярные выражения. Как правильно использовать переменную в регулярные выражения ?
Здравствуйте! Решил реализовать ЧПУ на своем сайте. Первый этап это замена всех реальных ссылок на чпу ссылки. Так вот при замене я...

Регулярные выражения: замена нескольких одинаковых знаков препинания на одно
Здравствуйте! Помогите с регулярным выражениям имеется текст, после чистки от дублей слов, остаются знаки препинания несколько запятых...

Регулярные выражения (поиск двух строк)
Суть такая, мне нужно получить названия всех картинок и ссылок с сайта (<img src= и <a href) Собственно проблему вызывает...

7
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
23.08.2011, 17:08
Alex Smith, я бы сделал шаблон вместе Public Class и End Class - то есть шаблон состоит из трех групп - первая Public Class, вторая - *(^End Class) (все остальное кроме End Class) и третья - End Class. Ну это в теории, навскидку сразу не скажу как точно составить регулярное выражение, но я бы сделал так.
0
 Аватар для ImAlexSmith
325 / 114 / 7
Регистрация: 01.05.2011
Сообщений: 283
Записей в блоге: 3
23.08.2011, 21:39  [ТС]
Eugene22, не мог бы ты другими словами выразить, а то я что то не понял...

я уточню вопрос:
допучтим есть код и в нем 3 класса.
необходимо такой придумать шаблон, чтобы все что находится между началом и концом каждого класса заносилось как элемент коллекции при методе Regex.Matches.
те коллекция с 3 элементами должна получится по идее.
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
23.08.2011, 22:18
Цитата Сообщение от Alex Smith Посмотреть сообщение
Eugene22, не мог бы ты другими словами выразить, а то я что то не понял...
а че непонятного - в шаблоне три группы - одна содержит Public Class, третья -End Class, а средняя - все символы, кроме выражения End Class. А на выходе получаешь вторую группу.
0
 Аватар для Ciberst
559 / 436 / 21
Регистрация: 16.12.2010
Сообщений: 953
23.08.2011, 22:23
Alex Smith, один вопрос, зачем Regex в данном случае?
0
 Аватар для ImAlexSmith
325 / 114 / 7
Регистрация: 01.05.2011
Сообщений: 283
Записей в блоге: 3
24.08.2011, 00:41  [ТС]
Ciberst, а как ты можешь предложить? перебирать по одному символу?

Добавлено через 2 минуты
Eugene22, что значит "группа" в шаблоне регулярного выражения, что то я не пойму?
0
 Аватар для Ciberst
559 / 436 / 21
Регистрация: 16.12.2010
Сообщений: 953
24.08.2011, 12:21
Вообще-то есть indexOf, как буду у компа, сразу парсер этот выложу

Добавлено через 11 часов 17 минут
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Public Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim a As New List(Of String)
        Pars(TextBox1.Text, "Public Class", vbCrLf + "End Class", a)
        For i = 0 To a.Count - 1
            MsgBox(a(i))
        Next
    End Sub
    Public Sub Pars(ByVal source As String, ByVal strStart As String, ByVal strEnd As String, ByRef Result As List(Of String), Optional ByVal startPosition As Integer = 0)
        Dim indStart As Integer = source.IndexOf(strStart, startPosition)
        Dim indEnd As Integer = source.IndexOf(strEnd, startPosition)
        If indStart <> -1 AndAlso indEnd <> -1 Then
 
            Result.Add(source.Substring(indStart, indEnd + strEnd.Length - indStart))
            Pars(source, strStart, strEnd, Result, indEnd + strEnd.Length)
        End If
    End Sub
 
End Class
Если навскидку можно и так, если не учитывать регистр тебе, то напиши, тоже сделаю.
1
 Аватар для ImAlexSmith
325 / 114 / 7
Регистрация: 01.05.2011
Сообщений: 283
Записей в блоге: 3
25.08.2011, 00:27  [ТС]
Ciberst, спасибо за помощь, я разобрался с регулярками

есть код, написан в текстбоксе
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Public Class Form1
    Private aaa As String = "aaa"
    Private bbb As String = "bbb"
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MsgBox(aaa + vbCrLf + bbb)
        Close()
    End Sub
End Class
 
Public Class Form2
    Private aaa As String = "aaa"
    Private bbb As String = "bbb"
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MsgBox(aaa + vbCrLf + bbb)
        Close()
    End Sub
End Class
пишем
VB.NET
1
2
Dim Mat As MatchCollection
Mat = Regex.Matches(textbox, ".*?Class .+?End Class", RegexOptions.Multiline Or RegexOptions.Singleline)
и вуаля, один элемент коллекции - один класс
проблема была в одном пробеле перед End Class, всего-то...

Не по теме:

потому и люблю регулярки - это быстрее работает и короче в плане кода
хотя и поломать голову иногда приходится:)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.08.2011, 00:27
Помогаю со студенческими работами здесь

Сравнение строк как регулярные выражения
Подскажите с виду такая простая задача. Сравнить к примеру строку &quot;temp_&quot; со строкой &quot;Systemtemp_sis&quot;, если в ней присутствует ...

Регулярные выражения при задании искомых строк
MS DOS 6.22 Norton Commander. Пример из учебника (справка F1 вроде как подтверждает правомерность). Не работает! ...

Запись/Чтение файла, массив строк, регулярные выражения
Привет ребята, столкнулся с такой задачей. Записываю данные в файл с помощью textBox и numericUpDown. Получается все с новой строки, а...

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

Регулярные выражения(выделения текста "от" "по")
Здравствуйте, подскажите как выделить часть текста с тега &lt;div id=&quot;ds_div&quot;&gt; по текст &quot;Ready to ship!&quot; Спасибо &lt;div...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru