Я пытаюсь разобрать скрипт создания таблицы SQL в Java.
В настоящее время у меня есть следующий шаблон:
Pattern p = Pattern.compile("(.+)([ ]+)(.+)([ ]+)(.+)");
т.е. группа любых символов (имя столбца), за которыми следуют один или несколько пробелов, за которыми следует другая группа символов (тип столбца), за которыми следует один или несколько пробелов, за которыми следует любое количество символов (т.е. не нулевой и т. д.).
И это используется следующим кодом:
Matcher m = p.matcher(field);
if(m.find()){
String column = m.group(1).trim();
String type = m.group(3).trim();
String clauses = m.group(5).trim();
}
И все же, когда я запускаю это:
firstColumn varchar(4) not null,
Первая группа:
firstColumn varchar(4)
Я ожидаю, что три извлеченные поля будут firstColumn, varchar (4) и не равны NULL соответственно.
Есть идеи?