Regex ciąg cyfr

0

Cześć

class Moo
{
  public static void main(String[] args)
  {

        String text    =
                  "John writes about this, and John writes about that," +
                          " 0111110111201130122014023050"
                ;
int d=3;
        
        String patternString1 = "[0]([1-9]{"+d+"})[0]";

        Pattern pattern = Pattern.compile(patternString1);
        Matcher matcher = pattern.matcher(text);

        while(matcher.find()) {
            System.out.println("found: " + matcher.group(1));
        }
    }
}

Mam coś takiego wynik wychodzi mi 113 a chciałbym żeby wywaliło mi wszystkie 3 cyfrowe liczby miedzy 0.
czyli w tym przypadku pomija 01220 >122 pewnie 0 jest wspólne albo coś . Proszę o pomoc

0

Napisz jaki dokładnie chcesz żeby wyszedł wynik, bo z tego co napisałeś trudno coś zrozumieć.

0

chcę wyciagnąć z tego ciągu wszystkie 3 z pomiedzy 0.
ech no
01110
chce te 111
011102320
tu chce
111 i 232

0

([^0]{3})

0

0111110111201130122014023050
found: 111
found: 111
found: 113
found: 122
pierwszy znak musi też być 0 nie może wypisywać w przypadku gdy jest 1111 tych 111.

0

To zdecyduj się, jak ma wypisywać 3 albo więcej cyfr to 0([^0]+)

0

3 tylko problem jest w takiej momencie

011101210
i chce mieć i 111 i 121 a tu jakby pomijało to 0 już które było końcem 111[0].

3 ale tylko miedzy 0 jeśli miedzy 0 jest wiecej jak 3 to nie 011110 tego nie chce tych 111.

0

Jak zero ma być "wspólne" to możesz rozbić tego Stringa zerami i dopasować wynik

String [] x = text.split("0");
			List<String> list = new ArrayList<>(Arrays.asList(x));
			for (String result : list){
				if (result.matches("\\d{3}")){
					System.out.println(result);
				}
			}

Przy okazji witam wszystkich bardzo serdecznie na forum

1 użytkowników online, w tym zalogowanych: 0, gości: 1