Kezdőoldal » Számítástechnika » Programozás » Miért nem kapja el a nested...

Miért nem kapja el a nested group-okat a regex?

Figyelt kérdés

[link]

^^ ez alapján

egy (a(b)) kifejezéssel ezeket kellene elkapnia: b, ab

String regex="(a(b))";

String text= "abrak";

Pattern p = Pattern.compile(regex);

Matcher m = p.matcher(text);

System.out.println(m.groupCount());

while(m.find()){

System.out.println(m.group());


}


run:

2

ab



és kettő group-ot talál, de csak egyet jelenít meg. :?


2016. júl. 16. 13:08
 1/3 anonim ***** válasza:
Csak egyet irtasz ki. "System.out.println(m.group());" helyett egy ciklussal végig kéne menni az összes groupon amit a find talált.
2016. júl. 16. 13:19
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:

Az m.group() azt az input szakaszt jeleníti meg, amire az egész minta illeszkedett:

[link]


És mivel egy találat van, egy iterációja van a while-nak.


A csoportokat az m.group(int)-el tudod lekérdezni:


for(int i = 0; i <= m.groupCount(); i++) {

System.out.println(m.group(i));

}

// A group(0) a teljes illesztett input.

2016. júl. 16. 13:23
Hasznos számodra ez a válasz?
 3/3 A kérdező kommentje:
köszönöm szépen,mentek a zöldek! :)
2016. júl. 16. 13:32

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!