Если это специфический формат вашего сообщения, то такое выражение должно помочь:
INSERT INTO employees VALUES (".*?", "(.*?)", ".*?");
Прочитайте первую группу результата, и вы должны получить возраст.
В регулярных выражениях (X)
определяет соответствующую группу, которая захватывает X
(где X
может быть любым регулярным выражением). Это означает, что , если совпадает со всем регулярным выражением, вы можете легко найти значение в этой соответствующей группе (используя Matcher.group()
в Java).
Вы также можете иметь несколько подходящих групп в одном регулярном выражении, например:
INSERT INTO employees VALUES ("(.*?)", "(.*?)", "(.*?)");
Итак, ваш код может выглядеть так:
String sql = "INSERT INTO employees VALUES (\"John Doe\", \"45\", \"engineer\");";
final Pattern patter = Pattern.compile("INSERT INTO employees VALUES (\"(.*?)\", \"(.*?)\", \"(.*?)\");");
final Matcher matcher = pattern.matcher(sql);
if (matcher.matches()) {
String name = matcher.group(1);
String age = matcher.group(2);
String job = matcher.group(3);
// do stuff ...
}