Я пытаюсь написать шаблон в Java, чтобы соответствовать объявлениям импорта Java.Java Imports Объявление regex
Пример:
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.InputFormat;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
// import org.apache.hadoop.mapreduce.Something;
/* import org.apache.hadoop.something.else; */
сопрягать бы лишь:
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.InputFormat;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
До сих пор у меня есть следующее регулярное выражение:
"[^A-Za-z0-9\\n]? *import(static|\\s)+[\\w.]*(\\*)?(\\s)*;"
Но это не работает. Например:
import org.junit.Test;
import java.util.ArrayList;
/* The import name; lazily initialized; defaults to a unspecified,...
возвращается:
import org.junit.Test;
import java.util.ArrayList;
import name;
что неправильно.
«это не работает» это наихудшее описание проблемы. Что именно не работает? У вас есть ложные срабатывания? Ложные негативы? Это крушение? Он сжигает ваш дом, когда вы его запускаете? –
Если вы собираетесь сделать что-то подобное, уверены ли вы, что Regex является ответом? Вы уверены, что ориентированный на lexer/parser (например, javac) не будет проще? – corsiKa
Это больше, чем нужно. –