import java.util.regex.Matcher;
import java.util.regex.Pattern;
...
Pattern p = Pattern.compile("executeRule\\(\\w+, (\\w+), \\w+\\)");
Matcher m = p.matcher(YOUR_TEXT_FROM_FILE);
while (m.find()) {
String secondArgument = m.group(1);
...process secondArgument...
}
После выполнения этого кода secondArgument
будет содержать значение y
. Приведенное выше регулярное выражение предполагает, что вы ожидаете, что аргументы состоят из символов слова (то есть строчных и заглавных букв, цифр и подчеркивания).
Двойная обратная косая черта необходима для строкового литерального синтаксиса Java, механизм регулярных выражений будет видеть одиночные обратные косые черты.
Если вы хотите использовать пробел в строке, как это разрешено в большинстве языков программирования, вы можете использовать следующее регулярное выражение:
Pattern p = Pattern.compile("executeRule\\(\\s*\\w+\\s*,\\s*(\\w+)\\s*,\\s*\\w+\\s*\\)");