Вопрос: Поиск в коде VB.NET с исп. рег. выражений.

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Anatoliy
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 12.01.2005 (Ср) 18:13
Откуда: Kiev

Вопрос: Поиск в коде VB.NET с исп. рег. выражений.

Сообщение Anatoliy » 22.06.2007 (Пт) 12:18

Собственно вопрос.
В 7 - й и выше студии есть возможность поиска по коду проекта с использованием регулярных выражений.
Подскажите, пожалуйста. Как с помощью регулярного выражения отличить закомментированную строку (начинается с нескольких пробелов или табов + апостроф) от незакоментированной.
Реально задача сложнее. Но грабли начались с вышеприведенного вопроса.
Anatoliy

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 22.06.2007 (Пт) 16:09

Что конкретно надо сделать?
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Anatoliy
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 12.01.2005 (Ср) 18:13
Откуда: Kiev

Сообщение Anatoliy » 22.06.2007 (Пт) 17:03

Ну например найти строки со словом "Integer"
Необходимо составить регулярное выражение, которое бы из двух строк:
Код: Выделить всё
   
    Dim x As Integer
    'Dim y As Integer
Нашло бы первую (незакомментированную) и проигнорировало бы вторую (закомментированную).
Искать необходимо не в рантайме, а при редактировании кода в студии (Ctrl+F в диалоговом окне параметров поиска включаем галочку "Use", в комбобоксе чуть ниже быбираем "Regular expression")

Привожу пару вариантов, которые пытался применить:
^([^\s*'])(.*)Integer находит обе строки
^(?!\s*')(.*)Integer не находит ничего
Ну и множество вариаций подобных приведенным примерам. Результат никакой.
Anatoliy

Gloom
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 200
Зарегистрирован: 23.11.2004 (Вт) 15:57
Откуда: СПб

Сообщение Gloom » 22.06.2007 (Пт) 17:46

Anatoliy писал(а):Ну например найти строки со словом "Integer"
Необходимо составить регулярное выражение, которое бы из двух строк:
Код: Выделить всё
   
    Dim x As Integer
    'Dim y As Integer
Нашло бы первую (незакомментированную) и проигнорировало бы вторую (закомментированную).
Искать необходимо не в рантайме, а при редактировании кода в студии (Ctrl+F в диалоговом окне параметров поиска включаем галочку "Use", в комбобоксе чуть ниже быбираем "Regular expression")

Привожу пару вариантов, которые пытался применить:
^([^\s*'])(.*)Integer находит обе строки
^(?!\s*')(.*)Integer не находит ничего
Ну и множество вариаций подобных приведенным примерам. Результат никакой.

У меня сейчас VS нет под рукой, а в SharpDevelop вот такой паттерн работает:
Код: Выделить всё
(?<=\n)(\s)*?([^'])*Integer

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 22.06.2007 (Пт) 18:04

Код: Выделить всё
^[:b]*[^']*Integer
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Anatoliy
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 12.01.2005 (Ср) 18:13
Откуда: Kiev

Спасибо! Это то что мне было нужно.

Сообщение Anatoliy » 25.06.2007 (Пн) 9:12

Спасибо.
Anatoliy


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 60

    TopList