Java Imports объявление регулярных выражений - PullRequest
0 голосов
/ 28 июня 2010

Я пытаюсь написать шаблон на Java, чтобы он соответствовал объявлениям импорта Java.

Пример:

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;

что не так.

Ответы [ 2 ]

0 голосов
/ 28 июня 2010

Я получил его с использованием флага.

Теперь это выглядит следующим образом:

Pattern.compile("(;|^ *)import(static|\\s)+[\\w.]*(\\*)?(\\s)*;",Pattern.MULTILINE);
0 голосов
/ 28 июня 2010

Как насчет этого:

^import
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...