Zeichenklasse (eckige Klammern)
Die linke eckige Klammer beginnt mit der Beschreibung einer Zeichenklasse und endet mit der eckigen Klammer. Eine einzelne rechte eckige Klammer hat keine besondere Bedeutung. Wenn eine rechte eckige Klammer als Mitglied einer Zeichenklasse erforderlich ist, kann sie an das erste Zeichen der Zeichenklasse geschrieben werden (oder an das zweite Zeichen, wenn ^ zum Negieren verwendet wird) oder ein Escape-Zeichen verwendet werden.
Eine Zeichenklasse entspricht einem einzelnen Zeichen in der Zielzeichenfolge; das Zeichen muss zu dem in der Zeichenklasse definierten Zeichensatz gehören, es sei denn, ^ wird zum Negieren der Zeichenklasse verwendet. Wenn ^ Mitglied einer Zeichenklasse sein muss, stellen Sie sicher, dass es nicht das erste Zeichen der Zeichenklasse ist, oder maskieren Sie es einfach.
Zum Beispiel stimmt die Zeichenklasse [aeiou] mit allen kleingeschriebenen Vokalzeichen überein, während [^aeiou] mit allen Nicht-Vokalzeichen übereinstimmt. Hinweis: ^ ist lediglich ein praktisches Symbol zum Angeben von Zeichen, die in einer Zeichenklasse nicht vorhanden sind, durch eine Aufzählung. Anstatt zu behaupten, verbraucht es immer noch ein Zeichen aus der Zielzeichenfolge und die Übereinstimmung schlägt fehl, wenn der aktuelle Übereinstimmungspunkt am Ende der Zielzeichenfolge liegt.
Wenn die Übereinstimmung ohne Berücksichtigung der Groß- und Kleinschreibung festgelegt ist, stellt jede Zeichenklasse sowohl Groß- als auch Kleinbuchstaben dar, sodass beispielsweise ein [aeiou] ohne Berücksichtigung der Groß- und Kleinschreibung sowohl mit „A“ als auch mit „a“ übereinstimmt [^aeiou] stimmt auch nicht mit „A“ überein.
Das Newline-Zeichen hat in der Zeichenklasse keine besondere Bedeutung und hat nichts mit den Optionen PCRE_DOTALL oder PCRE_MULTILINE zu tun. Eine Zeichenklasse wie [^a] stimmt immer mit einem Zeilenumbruchzeichen überein.
In Zeichenklassen kann ein Bindestrich (Minuszeichen -) verwendet werden, um einen Bereich von einem Zeichen zum anderen anzugeben. Beispielsweise entspricht [d-m] allen Zeichen zwischen d und m, und diese Menge ist geschlossen. Wenn der Unterstrich selbst in einer Zeichenklasse beschrieben werden soll, muss er verschoben werden oder an einer Position erscheinen, die nicht als Bereich interpretiert wird, typischerweise am Anfang oder Ende der Zeichenklasse.
Die rechte Klammer kann nach einer Zeichenbereichsbeschreibung nicht verwendet werden. Beispielsweise wird ein Muster [W-]46] als eine Zeichenklasse interpretiert, die W und - gefolgt von der Zeichenfolge „46]“ enthält, sodass es mit „W46]“ oder „-46]“ übereinstimmen kann. Wenn die Klammer jedoch maskiert ist, wird sie als Ende des Bereichs interpretiert, sodass [W-]46] als einzelnes Zeichen interpretiert wird, das alle Zeichen im Bereich W bis ] plus die Zeichen 4 und 6 enthält. Eckige Klammern in oktalen oder hexadezimalen Beschreibungen können auch zum Beenden von Bereichen verwendet werden.
Bereichsoperationen werden in ASCII-Reihenfolge sortiert. Sie können verwendet werden, um Zeichen numerische Werte zuzuweisen, wie zum Beispiel [