powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / substring between
7 сообщений из 7, страница 1 из 1
substring between
    #39617513
AndronovMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, Коллеги!

Не найду способ получить подстроку из строки заключенную в скобки.

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

Есть текст
Код: java
1.
2.
3.
4.
String str = "/*** остатки по складам ***/
-- totals(\"количество, тн.\",\"сумма (с НДС)\" by \"счет\",\"объект дохода\",\"организация\")
-- moneycolumns(\"цена\",\"сумма (с НДС)\")
-- weightcolumns(\"количество, тн.\")";



Мне надо получить все что между totals( и ) , moneycolumns( и ) , weightcolumns( и )
String totals = StringUtils.substringBetween(str, " totals(", ")");
String moneycolumns= StringUtils.substringBetween(str, " moneycolumns(", ")");
String weightcolumns= StringUtils.substringBetween(str, " weightcolumns(", ")");

Проблема в том, что некоторые вхождения имеют скобки, например сумма (с НДС) имеет скобки и StringUtils.substringBetween выдает не те подстроки.

Кто знает как мне достать полноценный текст между тегами??? )
Спс!
...
Рейтинг: 0 / 0
substring between
    #39617521
AndronovMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е. мне надо
Код: java
1.
2.
String str = "/*** остатки по складам ***/-- totals(\"количество, тн.\",\"сумма (с НДС)\" by \"счет\",\"объект дохода\",\"организация\")-- moneycolumns(\"цена\",\"сумма (с НДС)\")-- weightcolumns(\"количество, тн.\")";
String totals = StringUtils.substringBetween(str, " totals(", ")");



Получить "количество, тн.","сумма (с НДС)" by "счет","объект дохода","организация"
...
Рейтинг: 0 / 0
substring between
    #39617531
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
разбейте на подстроки между -- и берите в каждой такой подстроке последнюю скобку.
...
Рейтинг: 0 / 0
substring between
    #39617536
AndronovMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

А регулярки учитывающей закрытие открытого тега для более изящного решения задачи нет?
...
Рейтинг: 0 / 0
substring between
    #39617561
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndronovMVА регулярки учитывающей закрытие открытого тега для более изящного решения задачи нет?
"руглярка" и "изящно" это несовместимые понятия.
...
Рейтинг: 0 / 0
substring between
    #39617625
AndronovMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, )) ясно. спс, сделал иначе
...
Рейтинг: 0 / 0
substring between
    #39618731
unregestered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то типа

Matcher matcher = Pattern.compile(".*totals\\((?<totals>.+?),.+?\\).*moneycolumns\\((?<moneycolumns>.+?),.+?\\).*weightcolumns\\((?<weightcolumns>.+?),.+?\\).*").matcher("");
matcher.group("totals");
matcher.group("moneycolumns");
matcher.group("weightcolumns");
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / substring between
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]