# Suche nach regulärem Ausdruck



## knufler (25. Sep 2007)

Hallo,

ich habe ein Problem, dass sich wahrscheinlich mit RegEx lösen lässt, nur weiß ich nicht wie   

Eine Liste enthält u.A. folgende Elemente: { ..., "UPTTTA", "AWRTTA", "AWMITA", "AWMATA", "DFRTTA", "MKSOMA", "FGTGMA", ... }

Per RegEx möchte ich nun alle Elemente ausschließen, welche auf "TA" enden, außer "AWRTTA", "AWMITA", "AWMATA"

Die Bedingung soll also folgende Strings durchlassen: "AWRTTA", "AWMITA", "AWMATA" und alle die nicht mit "TA" enden.


Lässt sich das per RegEx elegant lösen?



Grüße knufler


----------



## tfa (25. Sep 2007)

Probier mal den:


```
/AWRTTA|AWMITA|AWMATA|.*([^T].|.[^A])$/
```


----------



## knufler (25. Sep 2007)

Hallo,

sorry, soweit war ich auch schon. Hab es leider genau falsch ausgedrückt .  Ich brauche quasi einen Ausdrück, der genau das Gegenteil macht, also folgende Elemente durchläßt: "UPTTTA" und "DFRTTA".


Grüße knufler


----------



## Kim Stebel (25. Sep 2007)

geht auch einfacher ohne regex:
meinString.endsWith("TA") && !meinString.equals("AWRTTA") && !meinString.equals("AWMITA") && !meinString.equals("AWMATA")


----------



## knufler (25. Sep 2007)

Ist schon klar. Aber mit RegEx könnte ich meine Filterfunktion viel generischer halten.

Grüße knufler


----------



## tfa (25. Sep 2007)

knufler hat gesagt.:
			
		

> Ist schon klar. Aber mit RegEx könnte ich meine Filterfunktion viel generischer halten.



Definier ein Interface:


```
public interface Filter {
    public boolean accept(String s);
}
```

Das generisch und flexibler als RegEx.


----------

