Das würde bedeuten, dass auch "" ein gültiger Name wäre. Ich gehe mal davon aus, dass du das nicht möchtest,
Doch, möcht ich ;-) Das gehört auch dazu, * also
/^ # string beginnt mit
( # ein Konstrukt aus
[ab]c # c mit vorhergehenden 'a' oder 'b'
# oder
[ab] # 'a' oder 'b'
)+ # das ganze mind. 1 Mal
$/x # string endet
Also das schaut gut aus, ich hab ein bissl herumprobiert, und nix gefunden, aber ich will nix verschreien, mal abwarten ob jemand noch was findet, wo dein regex nicht hinhaut ;-(
/^([ab]c?)*$/ ist natürlich funktional äquivalent zum gewünschten nur ggf. schwerer verständlich.
umgeschrieben also (sorry, aber ich tu mir da einfach leichter)
((ab)c(ab))*
Wenn dann /^((ab)c(ab))*$/
Reguläre Ausdrücke -- Jeffrey E. F. Friedl -- ISBN: 3930673622
http://www.amazon.de/exec/obidos/ASIN/3930673622/081181081181Wenn sich herausstellt dass deins stimmt, dann verspreche ich, mir ernsthaft zu überlegen, ob ich mir das Buch kaufen soll ;-)
Solltest du, es lohnt sich.