Chcę wykorzystać wyrażenie regularne do odnajdywania w tekście wejściowym deklaracji zmiennych, funkcji i klas. W związku z tym zbudowałem wyrażenia regularne dla :
deklaracji specyfikatora dostepu i typu:
String wyrazeniespecyfikatordostepu = "(\\s*?(public|static|private|protected|final|abstrac)?(\\s+)?)";
String wyrazeniedeklaracjitypu = "(String|Boolean|Byte|Character|Short|Integer|Long|Float|Double|Enum|boolean|byte|char|short|int|long|float|double|enum)(\\s+)?(\\[\\s*?\\])*?"";
Wyrażenia te pojedynczo działają natomiast w połączeniu nie działają nie wiem dlaczego ?
wykorzystywałem do tego funkcję matches klasy String
String wyrazeniedeklaracja = wyrazeniespecyfikatordostepu + wyrazeniedeklaracjatypu;
String wyrazenie = "public String ";
System.out.println(": " + wyrazenie.matches( wyrazeniedeklaracja));
funkcja matches działa jeśli porównywany String odpowiada całemu wyrażeniu, czy są funkcje w Javie które odnajdą w tekście wyszukiwane wyrażenie ?