Немного весело с Java на этот раз. Я хочу написать программу, которая считывает код со стандартного ввода (например, строка за строкой), например:
// some comment
class Main {
/* blah */
// /* foo
foo();
// foo */
foo2();
/* // foo2 */
}
находит в нем все комментарии и удаляет их. Я пытаюсь использовать регулярные выражения, и теперь я сделал что-то вроде этого:
private static String ParseCode(String pCode)
{
String MyCommentsRegex = "(?://.*)|(/\\*(?:.|[\\n\\r])*?\\*/)";
return pCode.replaceAll(MyCommentsRegex, " ");
}
но, похоже, не работает для всех случаев, например:
System.out.print("We can use /* comments */ inside a string of course, but it shouldn't start a comment");
Любые советы или идеи, отличные от регулярных выражений? Спасибо заранее.