我如何 select 使用正则表达式的代码块的第一行?

How would I select the first line from a block of code using regex?

我正在尝试使用 java select 代码块(本质上是一个长字符串)的第一行。我目前正在使用普通的 java 来做这件事,但这看起来很笨拙。如果可能的话,我想尝试用正则表达式代替。

我的代码目前看起来像:

int firstSpace = code.indexOf("package ");
String pac = code.substring(firstSpace);
pac = pac.replace("package ", "");
int endOfPac = pac.indexOf('\n');
pac = pac.substring(0,endOfPac);
String codeExpr = "result=data." + pac.trim() + ".resultObject";

代码字符串如下所示:

String code = "package pac.regoFile\n some code"

我需要的codeExpr最终结果是:

result=data.pac.regoFile.resultObject

您可以使用 Pattern 和 Matcher 来实现这一点。根据您输入的字符串,可以使用以下内容。

        Pattern p = Pattern.compile("^package (.*)?");
        Matcher m = p.matcher(code);
        if( m.find() ) {
            String pkg = m.group(1);
            String codeExpr = "result=data." + pkg.trim() + ".resultObject";
        }