Задать вопрос
@MikeChirkov

Регулярное выражение по удалению многострочных комментариев. Как не задеть хинты?

Необходимо написать регулярное выражение для удаления многострочных комментариев вида /* COMMENT /, но при этом не должны удаляться хинты вида /+ HINT */. Но если хинт находится в комментарии, его тоже нужно удалить.

Есть наработки: \/\*(?!\+)(.|\n)*?(\*\/)$

https://regex101.com/r/8CpB0X/1

Вроде работает, но если будет текст или пробел после красных */, то он будет идти до следующей закрывающей конструкции. Как можно модифицировать данное выражение? Или может переписать его как-то?

Использоваться регулярное выражение будет на c# для обработки файла с кодом pl/sql.
  • Вопрос задан
  • 177 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
@dodo512
str = Regex.Replace(
        str,
        @"(?sx)
        (?=/\*[^+])
        (?> (?'open'/\*)
          | (?'-open'\*/)
          | .
        )+?
        (?(open)(?!))",
        ""
);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы