Java: получить подстроку

0000

Не подскажете как стандартными Java функциями выделить подстроку?
Есть произвольная строка с двойными кавычками
ABCDE"FG"HKL"MNOP"GHFDD"LLL"...
Надо получить то, что стоит во вторых кавычках, то есть MNOP.
Наверно можно regexp-ом?
P.S. Использую Oracle Data Integrator, там есть Jyphon - питон в синтаксисе явы. Доков по нему нифига нет, плюс ODI своих тараканов доставляет. Какая версия Java/Jyphon в ODI, я фиг пойму.

danilov


final Matcher matcher = Pattern.compile("([^\"]*\"){3}(?<quote>[^\"]+)\".*").matcher(string);
if(matcher.matches {
quote = matcher.group("quote";
...
}

apl13

Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.

0000

Какой то хитрый паттерн, а одной строкой нельзя?
Пока сделал так

var s = <СТРОКА>;
var pos1 = s.indexOf('"', 0);
var pos2 = s.indexOf('"', pos1 + 1);
var pos3 = s.indexOf('"', pos2 + 1);
var pos4 = s.indexOf('"', pos3 + 1);
out.print(s.substring(pos3 + 1, pos4;%>

Но есть понимание, что можно и нужно сделать короче.
P.S. СТРОКА генерится, поэтому нужное количество кавычек всегда будет. Более того, они будут всегда парные.

danilov

Можно. Я тебя понял, что хотелось regexp'ом.
Можно так:

String quote = string.split("\"")[3];

Только надо проверок накидать

0000

Проверок какого плана?
P.S. split подключения regexp требует. Надо разобраться как подключать еше. А так вроде то, что надо. Спасибо!
Оставить комментарий
Имя или ник:
Комментарий: