Я хочу определить java-методы, как строка public native void TextTransArgs(int i, boolean flag, String s)
. Кроме того, я хочу извлечь имя метода, тип, тип возвращаемого и тип (-ы) типа args. Так как писать регулярное выражение?Как написать регулярное выражение java для идентификации java-функций?
public static void main(String[] args) {
Pattern pattern = Pattern.compile("(public|private|protected).*(?<=\\()[^\\)]+)");
Matcher matcher = pattern.matcher("public native void TextTransArgs(int i, boolean flag, String s)");
if(matcher.find()){
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
...
}
}
(? :(?: public) | (?: Private) | (?: Static) | (?: Protected) \ s +) * –
Регулярно для этого? Вам лучше использовать механизм грамматики ... Кроме того, что говорит о том, что все компоненты будут в одной строке? – fge
Сбалансированный '<>' для дженериков не является регулярным. –