[ANT] regexp [a-z] matched nicht wie gewünscht

Hallo,

Ich übergebe in ANT einen String ${name} und möchte ihn mit hilfe einer regexp überprüfen.
Es dürfen nur Klein-Buchstaben und Ziffern vorkommen, keine Sonderzeichen. Falls die regexp failed, soll eine Fehlermeldung ausgeworfen werden.

<condition property="naming.format.correct">
<matches pattern="([a-z0-9])+" string="${name}"/>
</condition>
<fail unless="naming.format.correct" message="Error: wrong naming: ${name}"/>

Doch leider matched er auch Strings mit Sonderzeichen, z.B. "ab#"...
Ich hab schon alles mögliche ausprobiert, aber ich weiß nicht warum... ich vermute, daß ANT mit [a-z] nicht zurecht kommt... hat jemand eine Idee?
 
Hi.

Du überprüfst nur ob mind. 1 Kleinbuchstabe bzw. Ziffer enthalten ist.

Code:
^[a-z0-9]+$

Oder du könntest es natürlich auch umdrehen:
XML:
<condition property="naming.format.incorrect">
     <matches pattern="[^a-z0-9]" string="${name}"/>
</condition>
<fail if="naming.format.incorrect" message="..." />
Gruß

PS: Bitte verwende die Code-Tags!
 
Zuletzt bearbeitet von einem Moderator:
Hallo zusammen,

eine gute Übersicht zu den Java Pattern liefert diese Seite:
http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html

Kleiner Tipp am Rande in diesem Zusammenhang!

Wir nutzen hier in der Firma 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/regex-coach ("Windows installer" oder "Linux tar archive")

Es eignet sich auch gut zur Einarbeitung in dieses Thema!

Gruß
Klaus
 

Neue Beiträge

Zurück