Pattern regex = Pattern.compile("/\\*[^\\r\\n]*[\\r\\n]+(.*?)[\\r\\n]+[^\\r\\n]*\\*+/", Pattern.DOTALL);
Это работает, потому что комментарии не могут быть вложены в Java.
Важно использовать квантификатор с неохотой (.*?
), иначе мы сопоставим все, начиная с первого комментария и заканчивая последним комментарием в файле, независимо от того, существует ли промежуточный код между ними.
/\*
совпадений /*
[^\r\n]*
соответствует тому, что находится на остальной части этой строки.
[\r\n]+
соответствует одному или нескольким переводам строки.
.*?
соответствует как можно меньшему числу символов.
[\r\n]+
соответствует одному или нескольким переводам строки.
[^\r\n]*
соответствует любым символам в строке закрытия */
.
\*/
соответствует */
.