Soweit ich weiß Ruby nicht Unicode-Eigenschaften nicht unterstützt (zumindest bis Version 1.8), so dass Sie
^(?:[^\W\d_]|-)+$
Erklärung verwenden, müssen möglicherweise: [^\W\d_]
Matches jeder Buchstabe (wörtlich bedeutet es „Spiel ein Zeichen, das weder ein nicht-alphanumerisches Zeichen, eine Ziffer oder ein Unterstrich ist "). In diesem Fall ist ein doppeltes Negativ das Richtige. Da wir eine negierte Zeichenklasse verwenden, müssen wir die -
abwechselnd zulassen.
Caveat: Von regular-expressions.info ihm wie Ruby sieht paßt nur ASCII-Zeichen mit der \w
Stenografie, so dass dieser regex möglicherweise nicht wie vorgesehen. Ich habe Ruby hier nicht installiert, aber auf rubular.com funktioniert diese Regex korrekt.
Die alternative Lösung
^[[:alpha:]-]+$
sollte es nicht funktioniert Nicht-ASCII-Zeichen nach regular-expressions.info und RegexBuddy, sondern auf rubular.com entsprechen.
Versuchen Sie auch http://rubular.com beste Ressource, um Ihre Ruby Regexs zu testen. –