Regulärer Ausdruck, damit nur alphabetische Zeichen übereinstimmen

Ich frage mich, ob ich einen regulären Ausdruck bekommen könnte, der zu einer Zeichenkette passt, die nur alpahabetische Zeichen hat, und das alleine

Sie können eine dieser 2 Varianten verwenden:

 /^[AZ]+$/i /^[A-Za-z]+$/ 

um eine Eingabezeichenfolge von ASCII-Alphabeten zu finden.

  • [A-Za-z] passt alle Alphabete (Groß- und Kleinbuchstaben) an.
  • ^ und $ stellen sicher, dass nur diese Alphabete abgeglichen werden.

Code:

 preg_match('/^[AZ]+$/i', "abcAbc^Xyz", $m); var_dump($m); 

Ausgabe:

 array(0) { } 

Testfall ist für den OP-Kommentar, dass er nur dann übereinstimmen möchte, wenn in der Eingabe 1 oder mehr Alphabete vorhanden sind. Wie Sie im Testfall sehen können, ist die Übereinstimmung fehlgeschlagen, weil in der Eingabezeichenfolge abcAbc^Xyz .

Hinweis: Bitte beachten Sie, dass die obige Antwort nur ASCII-Alphabete und nicht Unicode-Zeichen entspricht. Wenn Sie Unicode-Buchstaben zuordnen möchten, verwenden Sie:

 /^\p{L}+$/u 

Wenn Sie Nicht-ASCII-alphabetische Zeichen einschließen müssen und Ihr Regex-Format Unicode unterstützt, dann

 \A\pL+\z 

wäre die richtige Regex.

Einige Regex-Engines unterstützen diese Unicode-Syntax nicht, ermöglichen es aber der alphanumerischen \w Kurzschrift, auch Nicht-ASCII-Zeichen zuzuordnen. In diesem Fall können Sie alle alphabetischen Zeichen erhalten, indem Sie Ziffern und Unterstriche von \w wie folgt subtrahieren:

 \A[^\W\d_]+\z 

\A stimmt am Anfang des Strings überein, \z am Ende des Strings ( ^ und $ passen auch am Anfang / Ende von Zeilen in einigen Sprachen wie Ruby oder wenn bestimmte Regex-Optionen gesetzt sind).

Dies entspricht einem oder mehreren alphabetischen Zeichen:

 /^[az]+$/ 

Sie können die Groß- und Kleinschreibung ohne Berücksichtigung der Groß- / Kleinschreibung festlegen:

 /^[az]+$/i 

oder:

 /^[a-zA-Z]+$/ 

In Ruby und anderen Sprachen, die POSIX-Zeichenklassen in Klammerexpress unterstützen, können Sie einfach Folgendes tun:

 /\A[[:alpha:]]+\z/i 

Das wird Alpha-Zeichen in allen Unicode-Alphabet-Sprachen entsprechen. Kinderleicht.

Weitere Informationen: http://en.wikipedia.org/wiki/Regular_expression#Character_classes http://ruby-doc.org/core-2.0/Regexp.html

[a-zA-Z] sollte das gut machen.

Sie können auf den Spickzettel verweisen.