# Regex: finden, wenn erstes Klammernpaar leer und zweites eine Zahl enthält - wie?



## Kryptaesthesie (21. Oktober 2008)

Hallo zusammen 

Ich möchte gerne mit Hilfe der Eclipse Suche (File) alle Arrays finden, dessen Größe via Magic-Numbers festgelegt wird. Siehe folgendes Beispiel:

```
int[] werteXYZ = new int[5];
```
Also zwischen dem ersten [] Paar darf kein Zeichen sein und zwischen dem zweiten [] Paar muss eine Zahl stehen. Zwischen beiden Klammern muss noch ein new vorkommen

Ich habe da schon mal angefangen, bekomme aber nicht das richtige Ergebnis
.*\[\].*new.*\[[0-9]\]

Weiß jemand Rat?
Regex ist leider noch immer Neuland für mich.

Danke schon mal für eure Hilfe!
Gruß
Gerrit


----------



## deepthroat (21. Oktober 2008)

Hi.

Versuch's mal so:
	
	
	



```
[_a-z]\w*\s*\[\]\s[a-z_]\w*\s*=\s*new\s+[_a-z]\w*\[\d+\]
```
Gruß


----------



## Kryptaesthesie (22. Oktober 2008)

deepthroat hat gesagt.:


> Versuch's mal so:
> 
> 
> 
> ...



Feine Sache, funktioniert  
Vielen Dank!


----------



## vfl_freak (22. Oktober 2008)

Hallo zusammen,

kleiner Tipp am Rande in diesem Zusammenhang!

Ich nutze zum Testen von regulären Ausdrücken das nette kleine Tool "RegEx coach"! 

Es kann (zusammen mit seiner Doku) hier runtergeladen werden:
http://weitz.de/files/regex-coach.exe (Windows installer) oder http://weitz.de/files/regex-coach.tgz (Linux tar archive)

Es eignet sich auch gut zur Einarbeitung in dieses Thema!

Gruß
Klaus


----------



## Navy (22. Oktober 2008)

Der (leicht angepasste) Ausdruck

```
\[\].*new.*\[[0-9]*\]
```
arbeitet doch hervorragend und ist Für Deine Bedingung absolut ausreichend.


----------



## deepthroat (22. Oktober 2008)

Navy hat gesagt.:


> Der (leicht angepasste) Ausdruck
> 
> ```
> \[\].*new.*\[[0-9]*\]
> ...


Nicht ganz. Es soll eine Zahl zwischen den zweiten eckigen Klammern stehen, d.h. eine leere Klammer möchte er ja auf keinen Fall finden.

Gruß


----------



## Navy (22. Oktober 2008)

```
\[\].*new.*\[[0-9]+\]
```


----------



## Kryptaesthesie (22. Oktober 2008)

Navy hat gesagt.:


> ```
> \[\].*new.*\[[0-9]+\]
> ```



Ui  Das wird ja gleich ne Ganze Ecke übersichtlicher... hab's aber noch nicht ausprobiert.

Aber vielen Dank euch


----------

