Мне нужно распознать некоторые символы в файле .c. Сейчас я должен распознать строку #define, но я хотел бы исключить комментарии после определения. Например:
#define KERNEL_VERSION(a,b,c) ((a)*65536+(b)*256+(c)) /* We're doing kernel work */
У меня есть такие результаты:
group1="KERNEL_VERSION"
group2="(a,b,c) ((a)*65536+(b)*256+(c)) /* We're doing kernel work */"
Я бы хотел избавиться от /* We're doing kernel work */
Я перепробовал все, что просто не могу от этого избавиться. Вот где я нахожусь:
Pattern cdef = Pattern.compile("^#[\\t ]*define[\\t ]+(\\w+)[\\t ]*(.*)",Pattern.DOTALL);
Я попытался добавить ^[\\/\\*\\w+]
или [\\t ]+^\\/+\\*\\w*\\
..... в конце строки, но либо я потеряю всю вторую группу, либо она ничего не делает
Большое спасибо,
!!!! РЕДАКТИРОВАТЬ: Я хотел бы найти способ удалить комментарий C так: / * комментарий * / из шаблона
РЕДАКТИРОВАТЬ 2: То, как я это вижу, я думаю, что должен быть способ дать следующее иструкция:
"если вы найдете" / ", больше ничего не принимайте, я читаю файл построчно, чтобы можно было выбросить все, что находится после / :
Здесь я обрабатываю вторую группу: ".... (. )" Поэтому я попытался добавить ^ [\ / \ ] в конец моей строки, но это не работает и Я теряю всю вторую часть