Я пытаюсь использовать регулярное выражение с отрицательным взглядом и группами. К сожалению, он работает не так, как ожидалось, поэтому мне нужна помощь.regexp negative lookahead с группами
Мне нужно разобрать размеры (дюймы) в конце строки, которая может быть форматом «Tony Hawk 39.75» -> 39.75 "или с длиной x width 'Tony Hawk 39.75" x 8.75 " '-> 9,75 "x 8,75". Проблема в том, что имя также может содержать числа, например. «AD-37 8.0», поэтому я попытался с отрицательным взглядом, что «пространство» не следует за «x» (?!. + \ S [x]), но оно возвращается со странным результатом.
Pattern regex = Pattern.compile("(?!.+\\s[x])\\s(\\d+\\.?\\d*\".*)");
String s = "Tony Hawk 39.75\" x 8.75\"";
// or String s = "AD-37 8.0\"";
Matcher m = regex.matcher(s);
if (m.find()) {
System.out.println(m.groupCount());
System.out.println(m.group(1));
System.out.println(m.group(2));
}
Когда я выполняю приведенный выше пример, он возвращает меня для группы 1 '8.75 ", что я не понимаю. Здесь я бы ожидал «Тони Хок».
Какие-либо намеки, что я сделал не так?
Что ваш код предполагают достичь? Какова ваша цель? – Pshemo