从后面搜索时如何从字符串的一部分中获取子字符串

How to get substring from a part of string while searching from the back

我有一个字符串,其中包含来自另一个 JAVA class 的代码,我正在提取文档注释。我有一个包含以下内容的字符串:

"public static String[] scanread() throws Exception{"

我需要获取 "scanread()" 我该如何提取它?我希望能找到“)”并继续从右到左阅读,直到达到白色 space,然后将其提取。我不太确定我该怎么做。 此外,我担心 "scanread" 和“()”之间是否存在可能不起作用的 space。

任何帮助都会很棒。

谢谢

将下面的正则表达式与模式和匹配器一起使用 类。

"\S+\)"

"\S+\s*\(\)"

\S+ 匹配一个或多个非 space 字符,因此这匹配 ) 括号之前存在的所有非 space 字符,包括括号.

DEMO

String s = "public static String[] scanread() throws Exception{";
Matcher m = Pattern.compile("\S+\)").matcher(s);
while(m.find()){
System.out.println(m.group());
}

输出:

scanread()