Начал ковыряться и с использованием "копипаста" из Googl'а наковырял, что указав регулярное выражение мне возвращается всё, кроме того, что ищет регулярка, причём в конструкторе регулярных выражений мне выдаётся именно то, что ищет регулярка, а мой класс выдаёт всё наоборот, снова расстроился...
Снова поиск и чтение...
В итоге, всё же наковырял то, что надо... класс вынимает из кучи текста те значения, которые подходят под регулярное выражение и считает их кол-во
public static void main(String[] args) throws Exception {
// задаём регулярное выражение
Pattern p = Pattern.compile("[\\w]..;");
// присваиваем переменной текст который нужно парсить
String ass = "sai++; sas 13i++;45 i+i++;++; 60 \"!@#$%^&*() 54yi++;rw влi++; 4";
String[] result = p.split(ass);
Matcher m = p.matcher(ass);
int i;
for (i = 0; i < result.length; i++) {
// пока находятся куски текста соответствующие регулярке мы продолжаем цикл
boolean res = m.find();
while (res) {
// выводим найденные результаты
System.out.println("m.group() = " + m.group());
res = m.find();
}
}
// считаем и выводим кол-во совпадений
int slavazav = i - 1;
System.out.println(slavazav);
}
Неплохо, но сплит там совершенно лишний:
ОтветитьУдалитьpublic static void main1(String[] args) throws Exception {
// задаём регулярное выражение
Pattern p = Pattern.compile("[\\w]..;");
// присваиваем переменной текст который нужно парсить
String ass = "sai++; sas 13i++;45 i+i++;++; 60 \"!@#$%^&*() 54yi++;rw влi++; 4";
Matcher m = p.matcher(ass);
int count = 0;
// пока находятся куски текста соответствующие регулярке мы продолжаем цикл
while (m.find()) {
// выводим найденные результаты
System.out.println("m.group() = " + m.group());
count++;
}
// выводим кол-во совпадений
System.out.println(count);
}
хм, спасибо!
ОтветитьУдалить