Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
14 / 14 / 6
Регистрация: 07.09.2013
Сообщений: 159
1

Регулярное выражение

12.01.2016, 16:08. Показов 567. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.
Есть строка вида:
Java
1
2
3
4
5
6
String st = "
CREATE TABLE testTableWithReference(
id int primary key not null,
value text DEFAULT "Иван, вперед!" NOT NULL,
value2 text DEFAULT "Игра, словарь, школа, доска." NOT NULL)
";
Нужно разбить ее на строки вида:
Java
1
2
3
4
String st = "CREATE TABLE testTableWithReference(";
String st1 = "id int primary key not null,";
String st2 = "value text DEFAULT "Иван, вперед!" NOT NULL,";
String st3 = "value2 text DEFAULT "Игра, словарь, школа, доска." NOT NULL)";
Как можно это реализовать?
Обычный split по запятой или пробелу выдает неверный результат, так как в строках в кавычках может быть случайное количество пробелов или запятых.

Пытался придумать регулярное выражение, но как - то не получилось.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2016, 16:08
Ответы с готовыми решениями:

Регулярное выражение
есть строка в ней 5 чисел друг за другом за ними идет точка и пробел:"12345. " нужно проверить...

Регулярное выражение
Добрый день. Не понимаю как получить подстроку из строки, используя регулярное выражение. В строке...

Регулярное выражение
Доброго времени суток нужно помощь в составлении регулярного выражения для разбиения стоки, т.е ...

Регулярное выражение и \
Собственно пока особо не разбираюсь в RegExp , но код регулярка "+" отказывается искать "\\" ...

4
32 / 30 / 11
Регистрация: 27.09.2014
Сообщений: 359
12.01.2016, 18:02 2
_Vertigo_, Разбивать будем именно эту строку, или будут другие строчки?
0
14 / 14 / 6
Регистрация: 07.09.2013
Сообщений: 159
12.01.2016, 18:36  [ТС] 3
olexiy86, хотя бы эту разбить...
А так, последние 2 слова в каждой подстроке могут меняться, то бишь вместо
Java
1
"id int primary key not null,"
может быть
Java
1
2
3
4
5
"id int primary key,"
или
"id int primary key AUTOINCREMENT,"
а может вообще так:
"id text"
Было бы здорово приведенный мною в первом посте пример разбить. А остальное сам доделаю. Идею бы уловить.

Добавлено через 27 минут
Коряво и без регулярок сделал:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public static String[] split(String text) {
        String[] values;
        ArrayList<String> list = new ArrayList<String>();
        ArrayList<String> quoteString = new ArrayList<String>();
        values = text.split(",");
        int i = 0;
        while (i < values.length) {
                if (values[i].contains(""")) {
                    int j = i + 1;
                    if (j < values.length) {
                        while (true) {
                            quoteString.add(values[j]);
                            if(values[j].contains("""))
                                break;
                            j++;
                        }
                    }
                    String finalString = "";
                    for(String st: quoteString)
                        finalString += st;
                    list.add(values[i] + finalString);
                    quoteString.clear();
                    i = j + 1;
                }
                else {
                    list.add(values[i]);
                    i++;
                }
        }
        values = Cast.objectToStringArray(list.toArray());
        return values;
    }
0
32 / 30 / 11
Регистрация: 27.09.2014
Сообщений: 359
12.01.2016, 18:38 4
_Vertigo_, Ну так еслибы строка не менялась, то можно по количеству символов.
0
14 / 14 / 6
Регистрация: 07.09.2013
Сообщений: 159
12.01.2016, 18:41  [ТС] 5
olexiy86, если бы не менялась, то можно было бы. А так тоже решение, почему - то не додумался до такого
0
12.01.2016, 18:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2016, 18:41
Помогаю со студенческими работами здесь

Регулярное выражение
Есть html код который нужно так сказать распарсить, делаю так: Pattern p =...

регулярное выражение
Необходимо реализовать консольную программу, которая бы фильтровала поток текстовой информации...

Регулярное выражение
Добрый день! Необходимо сравнить две строчки (аналогично, как это делает String.equals(), но...

Регулярное выражение
Помогите пожалуйста составить регулярное выражение для функции replaceAll, которое заменяло бы...

Регулярное выражение
У меня есть определенный html код. Помогите пожалуйста вытащить через регулярное выражения java...

Регулярное выражение
Помогите, пожалуйста, написать регулярное выражение, которое будет проверять чтобы было два слова в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru