Я создаю некоторый код Java, который принимает правильно написанные файлы .java в качестве входных данных, и я хочу извлечь текст между фигурными скобками, используя регулярное выражение.Я хочу использовать классы Pattern и Matcher , а не для циклов.
Я считаю, что лучше всего создать регулярное выражение, которое группируеттекст во всем классе, а затем еще одно регулярное выражение, которое будет применено к предыдущему выводу, и группирует текст в методах.
Я приблизился к получению текста класса с использованием следующего регулярного выражения в онлайн-тестерах регулярных выражений:
\w\sclass.*\{((.*\s*)*)\}
но я почти уверен, что делаю это неправильно, используя две группы вместо одной.Более того, когда я использую это выражение в Java, я фактически ничего не получаю.
Вот пример файла, который я использую для отладки
package foo.bar;
import java.io.File;
public class Handy {
{
// static block, dont care!
}
/**
* Check if a string is Null and Empty
* @param str
* @return
*/
public static boolean isNullOrEmpty(String str) {
Boolean result = (str == null || str.isEmpty());
return result;
}
/**
* Mimics the String.format method with a smaller name
* @param format
* @param args
* @return
*/
public static String f(String format, Object... args)
{
return String.format(format, args);
}
}
С приведенным выше примером кода я ожидаю получить:
{
// static block, dont care!
}
/**
* Check if a string is Null and Empty
* @param str
* @return
*/
public static boolean isNullOrEmpty(String str) {
Boolean result = (str == null || str.isEmpty());
return result;
}
/**
* Mimics the String.format method with a smaller name
* @param format
* @param args
* @return
*/
public static String f(String format, Object... args)
{
return String.format(format, args);
}
Boolean result = (str == null || str.isEmpty());
return result;
return String.format(format, args);
Я знаю, какиспользовать классы Pattern и Matcher , мне просто нужны правильные регулярные выражения ...