Heim  >  Artikel  >  Web-Frontend  >  Wie beschränke ich die Zeichenlänge in regulären Ausdrücken?

Wie beschränke ich die Zeichenlänge in regulären Ausdrücken?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-17 03:38:03281Durchsuche

How to Restrict Character Length in Regular Expressions?

Einschränken der Zeichenlänge in regulären Ausdrücken

Bei der Verwendung regulärer Ausdrücke zur Validierung von Eingaben kann es erforderlich sein, die Länge der Zeichen in zu begrenzen übereinstimmen. Dies kann mithilfe von Ankern und Zusicherungen mit der Breite Null erreicht werden.

Das in der Frage bereitgestellte Beispiel verwendet einen regulären Ausdruck, um Zeichenfolgen abzugleichen, die nur Buchstaben, Zahlen und bestimmte Sonderzeichen enthalten, ohne Beschränkung der Zeichenlänge. Beim Versuch, die Länge mithilfe des Quantifizierers {1,15} auf 15 Zeichen zu beschränken, tritt jedoch ein Syntaxfehler auf.

Der Grund dafür ist, dass Quantifizierer nicht auf Anker angewendet werden können. Um die Zeichenlänge einzuschränken, besteht ein alternativer Ansatz darin, einen Lookahead zu verwenden, der am Anfang der Zeichenfolge verankert ist.

Der geänderte Ausdruck:

^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&amp;*;:,<>?()"]*$

Dieser Ausdruck enthält einen Lookahead, (?= .{1,15}$), das prüft, ob am Ende der Zeichenfolge eine Folge von 1 bis 15 Zeichen vorhanden ist. Der Hauptteil des Ausdrucks vergleicht die Länge der Eingabezeichenfolge.

Ähnlich können Ausdrücke für verschiedene Programmiersprachen erstellt werden:

Flavor Expression
ECMAScript, C ^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&amp;*;:,<>?()"]*$
Other regex flavors, Python A(?=.{1,15}z)[a-zA-Z0-9]*[^$%^&*;:,<>?()"]*z

Zusätzliche Überlegungen

  • Verwenden Sie [a-zA-Z0-9] anstelle von (a-z|A-Z|0-9) aus Effizienzgründen.
  • Um Zeilenumbrüche in der Eingabe zu ermöglichen , ersetzen Sie {1,15} durch [sS]{1,15}.

Das obige ist der detaillierte Inhalt vonWie beschränke ich die Zeichenlänge in regulären Ausdrücken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn