Регулярное выражение комментариев Java: egrep "(/\*\* | /* | \*/ | \*\*/)" text.txt

Регулярное выражение комментариев Java: egrep "(/\*\* | /* | \*/ | \*\*/)" text.txt

Я пытаюсь извлечь строки, начинающие или заканчивающие комментарий Java:

У меня есть следующее:

egrep "(/** | /* | */ | **/)" текст.txt

Я заметил, что это работает для всех строк (таких как /* comment */), за исключением тех, которые содержаттолько/*, /**, **/ или */ и ничего до или после них.

Почему это?

решение1

Ваш шаблон egrep "(/** | /* | */ | **/)" text.txtсодержит явные пробелы; попробуйте без них:egrep "(/**|/*|*/|**/)" text.txt

решение2

Вы включаете пробелы в свой шаблон и забываете строки комментариев, начинающиеся с //.

С:

egrep "(/\*\*|/\*|\*/|\*\*/|//)" text.txt

Я вижу все строки, которые начинают или заканчивают комментарии, включая строки, которые содержат только токены. Например...

текст.txt:

this should not be there
// this should be there
/* and this too */
/** even this
should be there too **/
/* or
that
also */
not this
/*
*/
/**
**/

Выход:

// this should be there
/* and this too */
/** even this
should be there too **/
/* or
also */
/*
*/
/**
**/

Связанный контент