Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Удалить комментарии / 4 сообщений из 4, страница 1 из 1
09.06.2016, 19:35
    #39253881
Регулярка
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить комментарии
Есть большие тексты, внутри которых разбросаны комментарии. Комментарии начинаются с "/*" и заканчиваются "*/". Пытаюсь удалить их регэкспом
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Public Function DelComment(stroka As String) as String
    Dim objRegExp As Object, s As String
    Set objRegExp = CreateObject("VBScript.RegExp")
    objRegExp.Global = True
    s = "\*/*\**/\*"
    objRegExp.Pattern = s
    DelComment = objRegExp.Replace(stroka, "")
End Function


Но ничего не удаляется. Возвращается исходный текст. Помогите составить правильный паттерн.
...
Рейтинг: 0 / 0
09.06.2016, 20:02
    #39253887
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить комментарии
Регулярка,

наверное, как-то так:
Код: vbnet
1.
s = "(\/\*.*\*\/)+?"
...
Рейтинг: 0 / 0
09.06.2016, 20:30
    #39253896
Регулярка
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить комментарии
The_Pristнаверное, как-то так:
Код: vbnet
1.
s = "(\/\*.*\*\/)+?"


Спасибо. Почти то что нужно. Правильно удаляет комменты. Но если комментарий занимает целую строку, то остается пустая строка. Можно ли как-то удалять и ее?
...
Рейтинг: 0 / 0
09.06.2016, 20:51
    #39253906
Регулярка
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить комментарии
Впрочем это легко решается обычным реплейсом перед регуляркой
Код: vbnet
1.
stroka = Replace(stroka, "*/" & vbCrLf, "*/")


The_Prist, спасибо еще раз!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Удалить комментарии / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]