Loading...
Petar088 avatar Petar088 3 Точки

Въпрос за REGEX и matcher.find() ??

 При вход aSd2&53s@1

Целта е да намеря числата и индекса им: Намира си  ги, но накрая (след последния индекс )вкарва (match-ва) празен стринг и ми гърми ?

Защо в while(matcher.find())  намира и вкарва празен стринг?

String input = sc.nextLine();
String regex = "[^\\d\\s]*(?<numb>[\\d]*)[^\\d\\s]*";

Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);

while (matcher.find()){

    int number= Integer.parseInt(matcher.group("numb"));
    String forIndex = String.valueOf(number);
    System.out.println(number);
    int index = input.indexOf(forIndex);
    System.out.println(index);

}
Тагове:
0
Fundamentals Module
Hristo13 avatar Hristo13 227 Точки

Здравей гърми ти заради регекса. Смени в numb групата [\\d]* на [\\d]+. Когато е * мачва 0 или повече цифри. С + изисква поне една цифра да има за да мачне.

0
Petar088 avatar Petar088 3 Точки

Благодаря за бързия отг 

0
damesova avatar damesova 203 Точки

Не става ясно, дали има и други изисквания, но ако само трябва да намериш числата (включително многоцифрените) ти е достатъчно само този регекс:

[\d]+

Иначе, в твоя случай, мисля, че звездичките ти вкарват празния стринг накрая.

Ако искаш дай по-подробно условие, за да се опитаме да намерим проблема :)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.