Heim > Backend-Entwicklung > C++ > Wie kann ich die Länge einer Eingabezeichenfolge mithilfe eines regulären Ausdrucks begrenzen und gleichzeitig Sonderzeichen einschränken?

Wie kann ich die Länge einer Eingabezeichenfolge mithilfe eines regulären Ausdrucks begrenzen und gleichzeitig Sonderzeichen einschränken?

Susan Sarandon
Freigeben: 2025-01-26 20:09:09
Original
231 Leute haben es durchsucht

How Can I Limit the Length of an Input String Using a Regular Expression While Restricting Special Characters?

Reguläre Ausdrücke verwenden, um die Länge der Eingabezeichenfolge und Sonderzeichen zu steuern

Dieser Artikel befasst sich mit der Herausforderung der Validierung von Eingabezeichenfolgen mithilfe regulärer Ausdrücke und konzentriert sich dabei insbesondere auf die Begrenzung der Zeichenfolgenlänge und den Ausschluss von Sonderzeichen. Ein gängiger Ansatz, bei dem Quantifizierer für Anker verwendet werden, ist häufig nicht in der Lage, die Gesamtlänge genau einzuschränken.

Die Lösung: Positive Lookahead-Behauptung

Die effektivste Lösung verwendet eine positive Lookahead-Behauptung am Anfang des regulären Ausdrucks:

<code>^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,?()""']*$</code>
Nach dem Login kopieren

Lassen Sie uns diesen Ausdruck aufschlüsseln:

  • ^: Entspricht dem Anfang der Zeichenfolge.
  • (?=.{1,15}$): Dies ist die positive Look-Ahead-Behauptung. (?= ... ) ist die Lookahead-Syntax. .{1,15} entspricht einem bis fünfzehn Mal (.) einem beliebigen Zeichen ({1,15}). $ entspricht dem Ende der Zeichenfolge. Dieser gesamte Abschnitt behauptet, dass die Zeichenfolge zwischen 1 und 15 Zeichen lang ist, ohne dass irgendwelche Zeichen in der Übereinstimmung verbraucht werden.
  • [a-zA-Z0-9]*: Entspricht null oder mehr alphanumerischen Zeichen.
  • [^$%^&*;:,?()""']*: Entspricht null oder mehr Zeichen, die nicht im angegebenen Satz von Sonderzeichen enthalten.
  • $: Entspricht dem Ende der Zeichenfolge.

Warum Lookahead entscheidend ist

Die Verwendung von Quantoren direkt auf Ankern (^ und $) ist wirkungslos, da sie nur das unmittelbar vorhergehende Element ändern. Eine Lookahead-Behauptung überprüft jedoch die Länge der gesamten Zeichenfolge bevor der Rest des Ausdrucks ausgewertet wird, um eine genaue Längenkontrolle sicherzustellen.

Mögliche Probleme angehen

  • Zeilenumbrüche: Wenn die Eingabe möglicherweise Zeilenumbrüche enthält, ersetzen Sie . im Lookahead durch [sS], um mit jedem Zeichen, einschließlich Zeilenumbrüchen, übereinzustimmen.
  • Längenanpassung: Der {1,15} Quantifizierer passt die maximale Stringlänge ganz einfach nach Bedarf an.

Dieser verbesserte Ansatz bietet eine robuste und genaue Methode zur Validierung von Eingabezeichenfolgen mithilfe regulärer Ausdrücke, wodurch die Länge effektiv begrenzt und gleichzeitig Sonderzeichen eingeschränkt werden.

Das obige ist der detaillierte Inhalt vonWie kann ich die Länge einer Eingabezeichenfolge mithilfe eines regulären Ausdrucks begrenzen und gleichzeitig Sonderzeichen einschränken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage