Помогите Еще регексы.

Blc_Dragon

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Blc_Dragon
Доброго времени суток, форумчане.
Т.к. хорошие люди сказали что регексы куда как быстрее, а попользовав эту вещь, я к ним и сам привык, то теперь юзаю их везде где надо, но не в этом соль.

есть вот такая строка
"абсолютно пфиг что тут хоть убицаапстену &4100.514$"

Получить надо "100.514$"

Если залезть в онлайн дебаггер, то вот такое: "([&§][0-9a-fklmnor])?(\d+\.?\d+\$)$" справляется на ура.

а тепрь внимание.
Пихаем это в код.
и вуаля:
upload_2017-2-4_19-20-54.png

(я знаю что не по ведру, но на жаба форумах как будто вымерли все)
 
Регексы в Java используют НКА, поэтому обычно скоростью работы не отличаются, более того, иногда работают гораздо медленнее.
в данной ситуации прогонять это через массив чаров не айс. выражение сложноватое.
как оказалось, он не хотел нормально работать из-за того что перед символами что то было
исправил, получил в дебаггере это
upload_2017-2-4_20-17-17.png
И получается, что третья группа самое то.

Захожу в IDE, запускаю это
Java:
String data = "dsaddasa &63521.0$";
Pattern pt= Pattern.compile("(.+)?([&§][0-9a-fklmnor])?(\\d+\\.?\\d+\\$)$");
Matcher ma =pt.matcher(data);
ma.matches();
       
for (int i= 0;i<=ma.groupCount();i++){
    System.out.println(ma.group(i));
}
Получаю это:
upload_2017-2-4_20-19-1.png


Куда взрываться?
 
Я же давал решение для такой задачи.
String s = "абсолютно пфиг что тут хоть убицаапстену &4100.514$";
s.replaceAll("(?i)&[0-9A-FK-OR]", "").replaceAll("[^0-9$.]", "");
 
Последнее редактирование:
Я же давал решение для такой задачи.
String s = "абсолютно пфиг что тут хоть убицаапстену &4100.514$";
s.replaceAll("(?i)&[0-9A-FK-OR]", "").replaceAll("[^0-9$]", "");
точку учесть забыл c:
Спасибо, конечно, жаль что мне нужен не реплейс. мне нужно было по группам разбить.
 
Да неважно как юзать. Суть не меняется.
и как же ты предлагаешь тем что выше в !одну! операцию, добиться того что надо - т.е. разбить по кускам.
лично я такого не вижу
 
Назад
Верх